feat: 实现用户画像、占卜历史与后端用户管理模块
This commit is contained in:
@@ -135,6 +135,7 @@ class SqlAlchemyEventStore:
|
||||
"result_type",
|
||||
"suggested_actions",
|
||||
"error",
|
||||
"divination_derived",
|
||||
"ui_hints",
|
||||
)
|
||||
worker_output_payload: dict[str, object] = {}
|
||||
@@ -187,7 +188,9 @@ class SqlAlchemyEventStore:
|
||||
content=content,
|
||||
model_code=model_code if isinstance(model_code, str) else None,
|
||||
tool_name=tool_name_value,
|
||||
metadata=metadata_model.model_dump(mode="json", exclude_none=True),
|
||||
metadata=metadata_model.model_dump(
|
||||
mode="json", by_alias=True, exclude_none=True
|
||||
),
|
||||
input_tokens=input_tokens,
|
||||
output_tokens=output_tokens,
|
||||
cost=cost,
|
||||
@@ -200,7 +203,9 @@ class SqlAlchemyEventStore:
|
||||
visibility_mask=visibility_mask,
|
||||
role=role.value,
|
||||
content=content,
|
||||
metadata=metadata_model.model_dump(mode="json", exclude_none=True),
|
||||
metadata=metadata_model.model_dump(
|
||||
mode="json", by_alias=True, exclude_none=True
|
||||
),
|
||||
timestamp=self._resolve_message_timestamp(persisted),
|
||||
)
|
||||
|
||||
@@ -272,7 +277,9 @@ class SqlAlchemyEventStore:
|
||||
role=AgentChatMessageRole.TOOL,
|
||||
content=content,
|
||||
tool_name=tool_output.tool_name,
|
||||
metadata=metadata_model.model_dump(mode="json", exclude_none=True),
|
||||
metadata=metadata_model.model_dump(
|
||||
mode="json", by_alias=True, exclude_none=True
|
||||
),
|
||||
visibility_mask=visibility_mask,
|
||||
)
|
||||
await self._append_context_cache_message(
|
||||
@@ -281,7 +288,9 @@ class SqlAlchemyEventStore:
|
||||
visibility_mask=visibility_mask,
|
||||
role=AgentChatMessageRole.TOOL.value,
|
||||
content=content,
|
||||
metadata=metadata_model.model_dump(mode="json", exclude_none=True),
|
||||
metadata=metadata_model.model_dump(
|
||||
mode="json", by_alias=True, exclude_none=True
|
||||
),
|
||||
timestamp=self._resolve_message_timestamp(persisted),
|
||||
)
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ def _worker_rules(llm_config: SystemAgentLLMConfig | None) -> list[str]:
|
||||
"[六爻分析流程]",
|
||||
"- 第1步:准确复述用户问题,确认问题类型与诉求焦点。",
|
||||
"- 第2步:围绕用神、世应、动爻、月建日辰、旺衰关系形成核心判断。",
|
||||
"- 第3步:给出签级,仅允许 上上签 / 中上签 / 中下签。",
|
||||
"- 第3步:给出签级,仅允许 上上签 / 中上签 / 中下签 / 下下签。",
|
||||
"- 第4步:输出结论与重点,解释外部阻力或有利转机出现条件。",
|
||||
"- 第5步:给出可执行建议,避免空泛正确话。",
|
||||
"- 第6步:提炼关键词,优先四字表达,简洁且可复述。",
|
||||
|
||||
@@ -232,8 +232,10 @@ class AgentScopeRunner:
|
||||
pipeline=pipeline,
|
||||
runtime_client_time=runtime_client_time,
|
||||
runtime_mode=runtime_mode,
|
||||
derived_divination=derived_divination,
|
||||
)
|
||||
worker_output = worker_output_model.model_validate(worker_result.payload)
|
||||
worker_output.divination_derived = derived_divination
|
||||
await self._emit_step_event(
|
||||
pipeline=pipeline,
|
||||
run_input=run_input,
|
||||
@@ -255,6 +257,7 @@ class AgentScopeRunner:
|
||||
pipeline: PipelineLike,
|
||||
runtime_client_time: ClientTimeContext | None,
|
||||
runtime_mode: RuntimeMode,
|
||||
derived_divination: DerivedDivinationData,
|
||||
) -> StageExecutionResult:
|
||||
tracking_model = self._build_model(stage_config=stage_config)
|
||||
formatter = OpenAIChatFormatter()
|
||||
@@ -290,7 +293,12 @@ class AgentScopeRunner:
|
||||
usage_summary=tracking_model.usage_summary(),
|
||||
)
|
||||
await emitter.emit_final_text_end(
|
||||
worker_output=worker_payload.model_dump(mode="json", exclude_none=True),
|
||||
worker_output={
|
||||
**worker_payload.model_dump(mode="json", exclude_none=True),
|
||||
"divination_derived": derived_divination.model_dump(
|
||||
mode="json", by_alias=True, exclude_none=True
|
||||
),
|
||||
},
|
||||
response_metadata=response_metadata,
|
||||
)
|
||||
return StageExecutionResult(
|
||||
|
||||
@@ -70,6 +70,7 @@ class PipelineStageEmitter:
|
||||
"suggested_actions": worker_output.get("suggested_actions")
|
||||
or worker_output.get("advice", []),
|
||||
"error": worker_output.get("error"),
|
||||
"divination_derived": worker_output.get("divination_derived"),
|
||||
**response_metadata,
|
||||
}
|
||||
ui_hints = worker_output.get("ui_hints")
|
||||
|
||||
Reference in New Issue
Block a user