核心概念:API 服务
AI 服务基于 FastAPI,对外提供 REST + SSE + WebSocket 能力,主要用于:会话对话、Agent 管理、RAG 知识源管理、文档摄取与查询等。
文档定位
本页描述的是 API 服务在系统里的角色和运行边界,不是逐个接口字段的查表页。
如何选择:
- 想看 API 在整体架构中的职责、数据流和运行约束:读本页
- 想查所有 HTTP / SSE / WebSocket 路由:读 端点概览
-
想看 FastAPI 应用对象和请求响应模型:读 API 参考 -> API 服务
-
SSE 流式回复(
POST /stream)。 - WebSocket 实时会话(
/ws/{session_id})。 - 会话与消息查询(
/sessions、/sessions/{id}/messages)。 - Turn 级历史观测(
/sessions/{id}/turns、/sessions/{id}/turns/{turn_id}/context)。 - Turn 级 RAG 检索调试(
POST /sessions/{id}/turns/{turn_id}/rag-debug)。 - 模型清单与默认配置(
/models)。 - Agent 管理(
/agentsCRUD)。 - 知识源管理(
/knowledge-sourcesCRUD)。 - Agent 知识挂载(
/agents/{agent_id}/mounts)。 - 文档上传、查询与删除(
/knowledge-sources/{id}/documents)。 - 摄取任务触发与查询(
/knowledge-sources/{id}/ingest)。
快速导航
- 端点总览(HTTP/SSE/WS):见「API 参考 → 端点概览」。
- FastAPI 应用入口与数据模型:见「API 参考 → API 服务」。
数据流说明
- SSE:客户端 POST 请求后,服务端持续输出
data: {json}事件。 - WebSocket:连接后可推送历史消息与新回复。
- Agent 知识过滤:当请求携带
agent_id时,RAG 检索会根据 Agent 挂载的知识源进行过滤。 - Chat 运行时选择:
agent_type只区分chat/etl/document_extraction;chatAgent 的具体运行时由orchestrator_key选择,服务端同时在/stream与 evaluation runner 中走同一注册表工厂。 - Agent 固定响应:仅
chatAgent 支持message_type_response_config。当请求携带agent_id且命中该配置时,POST /stream会优先按message_type + message匹配message_key_responses[],未命中时再回退到该message_type的默认兜底文案,并保持现有 SSEtoken/done格式;WebSocket chat session 会在进入编排前解析[message_type=<type>]\n<body>content,并用<body>参与同一套匹配。fixed response 路径不会调用 orchestrator,也不会写入新的会话模型覆盖配置。 - 失效 Agent 保护:当
POST /stream或WS /ws/{session_id}消息携带不存在的agent_id时,服务会拒绝本次请求;HTTP 路径返回404,错误载荷包含code=agent_not_found与原始agent_id。 - 观测持久化:每次用户输入与助手回复会写入
conversation_turns,并写入turn_context_snapshots记录上下文快照与 trace 关联信息。 - Langfuse 桥接:当
LANGFUSE_ENABLED=true且凭据可用时,服务会把同一个内部trace_id导出到 Langfuse,并在 turn 上下文响应中暴露可选的langfuse_trace_url。 - Conversations 历史导出:Admin Conversations 页面会组合
/sessions/{id}/turns与/sessions/{id}/turns/{turn_id}/context,导出兼容评测 CSV 的input/expected/metadata。导出行仍保持 turn 级,但导出候选范围已扩展到单个 Turn、当前 Session、已勾选 Sessions 或当前筛选结果对应的全部 Sessions。 - Conversations RAG 调试:Admin Conversations 页面可基于选中 Turn 调用
/sessions/{id}/turns/{turn_id}/rag-debug,使用该 Turn 的effective_input作为默认 query,返回 active sources、raw vector candidates、final retrieval、keyword fallback 运行信息,以及 expected-chunk 诊断。 - 历史身份保留:
sessions与conversation_turns会保留 Agent ID/名称快照,因此 Agent 删除后,/sessions与/sessions/{id}/turns仍可展示历史 Agent 身份。
延伸阅读
端点与数据模型的详细说明请查看: