add training configuration APIs

This commit is contained in:
刘金宝
2026-06-05 12:57:02 +08:00
parent 7f1803f9fa
commit 41a2851120
14 changed files with 1541 additions and 10 deletions
+8 -2
View File
@@ -20,7 +20,7 @@ class MedicalConsultationOrchestrator:
async def patient_reply(self, session: TrainingSession, case: CaseBase, memory_messages: list[dict], message: str) -> LLMResponse:
"""问诊编排:调用 Patient Agent 生成 AI 病人回复。"""
return await self.patient_agent.reply(case, memory_messages, message, session.mode)
return await self.patient_agent.reply(case, memory_messages, message, session.mode, self._patient_config(session))
async def patient_stream_reply(
self,
@@ -30,7 +30,7 @@ class MedicalConsultationOrchestrator:
message: str,
) -> AsyncIterator[LLMStreamChunk]:
"""流式问诊编排:调用 Patient Agent 并返回流式片段。"""
async for chunk in self.patient_agent.stream_reply(case, memory_messages, message, session.mode):
async for chunk in self.patient_agent.stream_reply(case, memory_messages, message, session.mode, self._patient_config(session)):
yield chunk
async def evaluate(
@@ -67,3 +67,9 @@ class MedicalConsultationOrchestrator:
) -> dict:
"""新手提示编排:基于当前会话上下文生成轻量训练提醒。"""
return await self.hint_agent.generate(session, case, memory_messages, orders, last_user_message)
def _patient_config(self, session: TrainingSession) -> dict | None:
"""病人配置:从会话 metadata 读取训练页初始化配置,传递给 Patient Agent。"""
metadata = session.metadata_ or {}
patient_config = metadata.get("patient_config") if isinstance(metadata, dict) else None
return patient_config if isinstance(patient_config, dict) else None