Update project and configurations
This commit is contained in:
46
intelligent_cabin/app/schemas/chat.py
Normal file
46
intelligent_cabin/app/schemas/chat.py
Normal file
@@ -0,0 +1,46 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any, Literal
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
from app.schemas.debug import RoutingDebug
|
||||
from app.schemas.workflow import Workflow
|
||||
|
||||
|
||||
class ChatRequest(BaseModel):
|
||||
session_id: str
|
||||
user_id: str
|
||||
channel: str = "app"
|
||||
input_text: str
|
||||
input_type: Literal["text", "voice"] = "text"
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class FillSlotsRequest(BaseModel):
|
||||
session_id: str
|
||||
user_id: str
|
||||
input_text: str
|
||||
|
||||
|
||||
class ChatResponse(BaseModel):
|
||||
session_id: str
|
||||
reply_type: Literal["text", "ask_slot", "ask_confirmation", "workflow_result", "fallback", "clarify", "reject"] = "text"
|
||||
reply_text: str
|
||||
intent: str | None = None
|
||||
domain: str | None = None
|
||||
decision: str | None = None
|
||||
decision_reason: str | None = None
|
||||
status: str
|
||||
pending_slots: list[str] = Field(default_factory=list)
|
||||
filled_slots: dict[str, Any] = Field(default_factory=dict)
|
||||
workflow: Workflow | None = None
|
||||
routing_debug: RoutingDebug | None = None
|
||||
first_response_latency_ms: float | None = None
|
||||
total_latency_ms: float | None = None
|
||||
processing_breakdown: dict[str, float] = Field(default_factory=dict)
|
||||
trace_id: str
|
||||
# ── 知识库查询结果(LLM function call 命中时填充)──────────────────────────
|
||||
knowledge_doc_id: str | None = None # 知识文档 ID(MD 文件名)
|
||||
knowledge_doc_title: str | None = None # 知识文档标题
|
||||
knowledge_content: str | None = None # 完整 MD 正文,供前端渲染知识卡片
|
||||
Reference in New Issue
Block a user