chore: finalize backend feature scope
This commit is contained in:
@@ -1,10 +1,30 @@
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class LearningAssistantChatRequest(BaseModel):
|
||||
"""学习助手请求:普通用户面向机构知识库提出医学学习问题。"""
|
||||
class LearningAssistantSessionCreateRequest(BaseModel):
|
||||
"""学习助手会话创建请求:进入 AI 学习助手页面时初始化短期问答会话。"""
|
||||
|
||||
question: str = Field(..., min_length=2, max_length=1000, description="用户问题")
|
||||
title: str | None = Field(default=None, max_length=100, description="会话标题,前端可不传")
|
||||
|
||||
|
||||
class LearningAssistantSessionResponse(BaseModel):
|
||||
"""学习助手会话响应:返回前端后续流式问答需要使用的会话 ID。"""
|
||||
|
||||
assistant_session_id: str
|
||||
user_id: str
|
||||
institution_id: int | None = None
|
||||
institution_name: str | None = None
|
||||
title: str
|
||||
status: str
|
||||
created_at: str
|
||||
updated_at: str
|
||||
expires_in_seconds: int
|
||||
|
||||
|
||||
class LearningAssistantChatRequest(BaseModel):
|
||||
"""学习助手问答请求:普通用户面向机构知识库提出医学学习问题。"""
|
||||
|
||||
question: str = Field(..., min_length=1, max_length=1000, description="用户问题")
|
||||
top_k: int | None = Field(default=None, ge=1, le=10, description="最终返回给 LLM 的来源片段数")
|
||||
score_threshold: float | None = Field(default=None, ge=0, le=1, description="向量相似度过滤阈值")
|
||||
|
||||
@@ -20,17 +40,3 @@ class LearningAssistantSource(BaseModel):
|
||||
chunk_uid: str
|
||||
score: float
|
||||
quote: str
|
||||
|
||||
|
||||
class LearningAssistantChatResponse(BaseModel):
|
||||
"""学习助手回答:返回答案、知识库命中状态、循证来源和耗时。"""
|
||||
|
||||
answer: str
|
||||
retrieval_hit: bool
|
||||
sources: list[LearningAssistantSource] = Field(default_factory=list)
|
||||
retrieval_error: str | None = None
|
||||
model: str | None = None
|
||||
embedding_latency_ms: int | None = None
|
||||
search_latency_ms: int | None = None
|
||||
llm_latency_ms: int | None = None
|
||||
total_latency_ms: int | None = None
|
||||
|
||||
Reference in New Issue
Block a user