Agent language switching
This commit is contained in:
@@ -7216,7 +7216,8 @@ RNA-seq KEGG/fgsea 会优先使用物种级 KEGG gene set;没有物种级缓
|
||||
session_id: this.sessionId,
|
||||
job_id: window.parentJobInfo ? window.parentJobInfo.job_id : 'default_job',
|
||||
prefix: normalizedPrefix(window.parentParams ? window.parentParams.prefix : ''),
|
||||
model: 'kimi'
|
||||
model: 'kimi',
|
||||
language: window.__CROPAI_LANG__ || 'zh'
|
||||
})
|
||||
});
|
||||
|
||||
@@ -9548,7 +9549,8 @@ compare: [[flesh, peel]]`;
|
||||
include_previous: true,
|
||||
mode: 'comprehensive',
|
||||
use_rag_support: Boolean(options.useRagSupport),
|
||||
refresh_rag: Boolean(options.refreshRag)
|
||||
refresh_rag: Boolean(options.refreshRag),
|
||||
language: currentLang.value
|
||||
})
|
||||
});
|
||||
const data = await res.json();
|
||||
@@ -22548,7 +22550,8 @@ compare: [[flesh, peel]]`;
|
||||
model: selectedModel.value,
|
||||
session_id: currentConversationId.value || sessionId.value,
|
||||
job_id: jobInfo.job_id,
|
||||
history: agentSession.messages.slice(-10)
|
||||
history: agentSession.messages.slice(-10),
|
||||
language: currentLang.value
|
||||
});
|
||||
|
||||
if (data.success && data.intent) {
|
||||
@@ -22647,6 +22650,7 @@ compare: [[flesh, peel]]`;
|
||||
job_id: jobInfo.job_id, // 传递当前 job_id 用于查询已完成阶段
|
||||
prefix: normalizedPrefix(params.prefix || ''),
|
||||
history: agentSession.messages.slice(-10),
|
||||
language: currentLang.value,
|
||||
intent: data.intent // 传递 chat 返回的 intent,避免重复调用 IntentAgentV2
|
||||
})
|
||||
}, 180000, '多智能体规划');
|
||||
|
||||
+28
-3
@@ -56,6 +56,8 @@ GF_MAS_ROOT = Path(os.environ.get("GF_MAS_ROOT", "/home/xzq/gene-family-mas-v2")
|
||||
if GF_MAS_ROOT.exists() and str(GF_MAS_ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(GF_MAS_ROOT))
|
||||
PLANTAI_RAG_ROOT = Path(os.environ.get("PLANTAI_RAG_ROOT", "/home/xzq/PlantAI-rag")).expanduser()
|
||||
|
||||
DEFAULT_AGENT_LANG = "zh"
|
||||
if PLANTAI_RAG_ROOT.exists() and str(PLANTAI_RAG_ROOT) not in sys.path:
|
||||
sys.path.insert(0, str(PLANTAI_RAG_ROOT))
|
||||
|
||||
@@ -16427,6 +16429,7 @@ class AgentChatRequest(BaseModel):
|
||||
session_id: str = ""
|
||||
job_id: str = "" # 当前 job_id,用于查询已完成 stages
|
||||
history: list = []
|
||||
language: str = DEFAULT_AGENT_LANG # "zh" or "en"
|
||||
|
||||
|
||||
methodology_sandbox_registry_cache: Dict[str, str] = {}
|
||||
@@ -17139,6 +17142,11 @@ async def _run_agent_chat(
|
||||
executes analysis stages here.
|
||||
"""
|
||||
session_id = request.session_id or f"session_{int(time.time())}"
|
||||
# Inject language instruction for non-Chinese languages
|
||||
if request.language and request.language != DEFAULT_AGENT_LANG:
|
||||
lang_map = {"en": "Please respond in English."}
|
||||
lang_instruction = lang_map.get(request.language, f"Please respond in {request.language}.")
|
||||
request.message = f"{lang_instruction}\n\n{request.message}"
|
||||
completed_stages: list[str] = []
|
||||
if request.job_id:
|
||||
final_dir = PROJECT_ROOT / "workspace" / request.job_id / "final"
|
||||
@@ -17444,6 +17452,7 @@ async def _run_agent_chat(
|
||||
"history": list(request.history or []),
|
||||
"session_id": session_id,
|
||||
"job_id": request.job_id,
|
||||
"language": request.language,
|
||||
}
|
||||
if router_goal_ledger is not None:
|
||||
payload["goal_ledger"] = router_goal_ledger
|
||||
@@ -18204,6 +18213,7 @@ class AgentExecuteRequest(BaseModel):
|
||||
model: str = "kimi"
|
||||
history: list = []
|
||||
auto_execute: bool = True # 是否自动执行分析
|
||||
language: str = DEFAULT_AGENT_LANG # "zh" or "en"
|
||||
|
||||
class AgentStatusResponse(BaseModel):
|
||||
"""Agent状态响应"""
|
||||
@@ -18223,12 +18233,20 @@ async def agent_execute(request: AgentExecuteRequest, background_tasks: Backgrou
|
||||
与/agent/chat不同,此接口会实际执行分析流程
|
||||
"""
|
||||
task_id = f"agent_task_{int(time.time())}_{uuid.uuid4().hex[:8]}"
|
||||
|
||||
|
||||
# Inject language instruction for non-Chinese languages
|
||||
message = request.message
|
||||
lang = getattr(request, "language", DEFAULT_AGENT_LANG)
|
||||
if lang and lang != DEFAULT_AGENT_LANG:
|
||||
lang_map = {"en": "Please respond in English."}
|
||||
lang_instruction = lang_map.get(lang, f"Please respond in {lang}.")
|
||||
message = f"{lang_instruction}\n\n{request.message}"
|
||||
|
||||
# 初始化任务状态
|
||||
agent_tasks[task_id] = {
|
||||
"task_id": task_id,
|
||||
"status": "pending",
|
||||
"message": request.message,
|
||||
"message": message,
|
||||
"job_id": request.job_id,
|
||||
"prefix": request.prefix,
|
||||
"current_stage": "",
|
||||
@@ -18267,7 +18285,7 @@ async def agent_execute(request: AgentExecuteRequest, background_tasks: Backgrou
|
||||
# 提交任务到Celery队列
|
||||
celery_task = execute_agent_task.delay(
|
||||
task_id=task_id,
|
||||
message=request.message,
|
||||
message=message,
|
||||
session_id=request.session_id or task_id,
|
||||
job_id=request.job_id, # 传入选中的 job_id
|
||||
history=request.history if request.history else [],
|
||||
@@ -18494,6 +18512,7 @@ class AgentPlanRequest(BaseModel):
|
||||
prefix: str = ""
|
||||
history: list = []
|
||||
intent: dict = {} # 前端可传入已有的intent,避免重复调用IntentAgentV2
|
||||
language: str = DEFAULT_AGENT_LANG # "zh" or "en"
|
||||
|
||||
|
||||
SUBFAMILY_PREDICTION_PLAN_STAGES = [
|
||||
@@ -20485,6 +20504,11 @@ async def agent_plan(request: AgentPlanRequest):
|
||||
"""
|
||||
try:
|
||||
session_id = request.session_id or f"session_{int(time.time())}"
|
||||
# Inject language instruction for non-Chinese languages
|
||||
if request.language and request.language != DEFAULT_AGENT_LANG:
|
||||
lang_map = {"en": "Please respond in English."}
|
||||
lang_instruction = lang_map.get(request.language, f"Please respond in {request.language}.")
|
||||
request.message = f"{lang_instruction}\n\n{request.message}"
|
||||
methodology_plan, methodology_intent, methodology_params = _load_methodology_plan_for_agent_request(request)
|
||||
if methodology_plan == {}:
|
||||
return {
|
||||
@@ -23746,6 +23770,7 @@ class GenerateInterpretationRequest(BaseModel):
|
||||
strict_identity: bool = True
|
||||
use_rag_support: bool = False
|
||||
refresh_rag: bool = False
|
||||
language: str = DEFAULT_AGENT_LANG # "zh" or "en"
|
||||
|
||||
@app.post("/api/agent/interpret")
|
||||
async def generate_interpretation(request: GenerateInterpretationRequest):
|
||||
|
||||
Reference in New Issue
Block a user