feat: 初始化考培练系统项目

- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
This commit is contained in:
111
2026-01-24 19:33:28 +08:00
commit 998211c483
1197 changed files with 228429 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
"""
言迹智能工牌相关Schema定义
"""
from typing import List, Optional
from pydantic import BaseModel, Field
class ConversationMessage(BaseModel):
"""单条对话消息"""
role: str = Field(..., description="角色consultant=销售人员customer=客户")
text: str = Field(..., description="对话文本内容")
begin_time: Optional[str] = Field(None, description="开始时间偏移量(毫秒)")
end_time: Optional[str] = Field(None, description="结束时间偏移量(毫秒)")
class YanjiConversation(BaseModel):
"""完整的对话记录"""
audio_id: int = Field(..., description="录音ID")
visit_id: str = Field(..., description="来访单ID")
start_time: str = Field(..., description="录音开始时间")
duration: int = Field(..., description="录音时长(毫秒)")
consultant_name: str = Field(..., description="销售人员姓名")
consultant_phone: str = Field(..., description="销售人员手机号")
conversation: List[ConversationMessage] = Field(..., description="对话内容列表")
class GetConversationsByVisitIdsRequest(BaseModel):
"""根据来访单ID获取对话记录请求"""
external_visit_ids: List[str] = Field(
...,
min_length=1,
max_length=10,
description="三方来访单ID列表最多10个",
)
class GetConversationsByVisitIdsResponse(BaseModel):
"""获取对话记录响应"""
conversations: List[YanjiConversation] = Field(..., description="对话记录列表")
total: int = Field(..., description="总数量")
class GetConversationsRequest(BaseModel):
"""获取员工对话记录请求"""
consultant_phone: str = Field(..., description="员工手机号")
limit: int = Field(default=10, ge=1, le=100, description="获取数量")
class GetConversationsResponse(BaseModel):
"""获取员工对话记录响应"""
conversations: List[YanjiConversation] = Field(..., description="对话记录列表")
total: int = Field(..., description="总数量")