feat(chat): allow knowledge chat before upload
This commit is contained in:
@@ -28,6 +28,23 @@ def create_conversation_for_batch(batch_id: str, product_name: str) -> Conversat
|
||||
return conversation
|
||||
|
||||
|
||||
def create_knowledge_conversation() -> Conversation:
|
||||
"""
|
||||
创建未绑定资料包的知识库问答会话。
|
||||
|
||||
该会话用于用户尚未上传资料时直接向 RAG 知识库提问,
|
||||
因此 batch_id 与 product_name 保持为空,Agent Core 通过空范围执行全局检索。
|
||||
"""
|
||||
return Conversation.objects.create(
|
||||
conversation_id=_generate_conversation_id(),
|
||||
title="知识库问答会话",
|
||||
product_name="",
|
||||
batch_id="",
|
||||
task_status=Conversation.STATUS_PENDING,
|
||||
node_results=_build_knowledge_node_results(),
|
||||
)
|
||||
|
||||
|
||||
def execute_conversation_agent(
|
||||
*,
|
||||
conversation: Conversation,
|
||||
@@ -132,6 +149,14 @@ def _build_initial_node_results() -> list[dict]:
|
||||
]
|
||||
|
||||
|
||||
def _build_knowledge_node_results() -> list[dict]:
|
||||
return [
|
||||
{"code": "knowledge_retrieval", "label": "知识库检索", "status": "待处理"},
|
||||
{"code": "answer_generation", "label": "问答生成", "status": "待处理"},
|
||||
{"code": "risk", "label": "风险预警", "status": "待处理"},
|
||||
]
|
||||
|
||||
|
||||
def _persist_notification_records(result: AgentResult, *, web_detail_url: str = "") -> None:
|
||||
payload = result.notification_payload or {}
|
||||
owners = payload.get("owners") or []
|
||||
|
||||
Reference in New Issue
Block a user