feat: add Chinese UI, Responses models, and mirrored Windows setup
Localize the web console and persist custom model and capability settings. Use OpenAI Responses exclusively and move runtime limits into environment configuration. Bootstrap uv and the virtual environment on Windows, support optional China mirrors, and package source distributions without environments, build output, or credentials. Update regression tests and repository quality checks for the new behavior.
This commit is contained in:
1 parent
371aa6df56
commit
2ddec53954
183 files changed
+3427
-11857
No files matched your search
@@ -53,10 +53,10 @@ def test_submit_answer_tool_subclass():
|
||||
assert submit_answer.args_schema == SubmitAnswerArgs
|
||||
|
||||
# GenAI FunctionDeclaration export
|
||||
declaration = submit_answer.to_genai_declaration()
|
||||
declaration = submit_answer.to_tool_declaration()
|
||||
assert declaration.name == "submit_answer"
|
||||
assert "analysis" in declaration.parameters.properties
|
||||
assert "actionable_steps" in declaration.parameters.properties
|
||||
assert "analysis" in declaration.parameters["properties"]
|
||||
assert "actionable_steps" in declaration.parameters["properties"]
|
||||
|
||||
|
||||
def test_ask_diagnoser_tool_subclass():
|
||||
@@ -81,9 +81,9 @@ def test_ask_diagnoser_tool_subclass():
|
||||
assert ask_diagnoser.args_schema == AskDiagnoserArgs
|
||||
|
||||
# GenAI FunctionDeclaration export
|
||||
declaration = ask_diagnoser.to_genai_declaration()
|
||||
declaration = ask_diagnoser.to_tool_declaration()
|
||||
assert declaration.name == "ask_diagnoser"
|
||||
assert "query" in declaration.parameters.properties
|
||||
assert "query" in declaration.parameters["properties"]
|
||||
|
||||
|
||||
def test_analyze_logs_tool_subclass():
|
||||
@@ -108,6 +108,6 @@ def test_analyze_logs_tool_subclass():
|
||||
assert analyze_logs.args_schema == AnalyzeLogsArgs
|
||||
|
||||
# GenAI FunctionDeclaration export
|
||||
declaration = analyze_logs.to_genai_declaration()
|
||||
declaration = analyze_logs.to_tool_declaration()
|
||||
assert declaration.name == "analyze_logs"
|
||||
assert "specific_query" in declaration.parameters.properties
|
||||
assert "specific_query" in declaration.parameters["properties"]
|
||||
@@ -37,43 +37,7 @@ async def test_video_analyzer_tools(artemis_context, mock_state, inputs_dir, tmp
|
||||
agent.blackboard_entries = []
|
||||
agent.sub_system_prompt = "You are a sub agent"
|
||||
agent.audio_system_prompt = "You are an audio sub agent"
|
||||
agent.model_name = "gemini-3.7-flash"
|
||||
|
||||
# We must provide a valid FunctionDeclaration for the tool otherwise Pydantic will complain
|
||||
from google.genai import types
|
||||
|
||||
agent.submit_answer_tool = types.FunctionDeclaration(
|
||||
name="submit_answer",
|
||||
description=("Submit the final findings for the requested segment analysis."),
|
||||
parameters=types.Schema(
|
||||
type=types.Type.OBJECT,
|
||||
properties={
|
||||
"summary": types.Schema(type=types.Type.STRING, description="summary"),
|
||||
"analysis": types.Schema(type=types.Type.STRING, description="analysis"),
|
||||
"timeline_events": types.Schema(
|
||||
type=types.Type.ARRAY,
|
||||
items=types.Schema(
|
||||
type=types.Type.OBJECT,
|
||||
properties={
|
||||
"start_time": types.Schema(type=types.Type.NUMBER),
|
||||
"end_time": types.Schema(type=types.Type.NUMBER),
|
||||
"transcription": types.Schema(type=types.Type.STRING),
|
||||
"confidence_score": types.Schema(type=types.Type.NUMBER),
|
||||
"verification_timestamp_secs": types.Schema(type=types.Type.NUMBER),
|
||||
},
|
||||
),
|
||||
),
|
||||
},
|
||||
),
|
||||
)
|
||||
|
||||
import google.genai as genai
|
||||
from artemis.config import settings
|
||||
|
||||
agent.client = genai.Client(
|
||||
api_key=settings.GOOGLE_API_KEY.get_secret_value() if settings.GOOGLE_API_KEY else None
|
||||
)
|
||||
artemis_context._genai_client = agent.client
|
||||
agent.model_name = "mimo-v2.6-flash"
|
||||
|
||||
import shutil
|
||||
import uuid
|
||||
|
||||
Reference in new issue
Block a user