Initial MVP for QA asset backend
This commit is contained in:
112
hy_qa_asset_backend/backend/app/api/feishu.py
Normal file
112
hy_qa_asset_backend/backend/app/api/feishu.py
Normal file
@@ -0,0 +1,112 @@
|
||||
from fastapi import APIRouter
|
||||
|
||||
from app import schemas
|
||||
from app.services.feishu_client import FeishuClient
|
||||
|
||||
router = APIRouter(prefix="/feishu", tags=["feishu"])
|
||||
|
||||
|
||||
@router.get("/status", response_model=schemas.FeishuStatus)
|
||||
def feishu_status() -> dict:
|
||||
return FeishuClient().connection_status()
|
||||
|
||||
|
||||
@router.get("/setup-guide", response_model=schemas.FeishuSetupGuide)
|
||||
def setup_guide() -> schemas.FeishuSetupGuide:
|
||||
return schemas.FeishuSetupGuide(
|
||||
required_env=[
|
||||
"FEISHU_APP_ID",
|
||||
"FEISHU_APP_SECRET",
|
||||
"FEISHU_APP_TOKEN 或 FEISHU_WIKI_NODE_TOKEN",
|
||||
"FEISHU_TABLE_ID_SESSION",
|
||||
"FEISHU_TABLE_ID_RAW_QA",
|
||||
"FEISHU_TABLE_ID_STANDARD_QA",
|
||||
"MOCK_MODE=false",
|
||||
],
|
||||
required_permissions=[
|
||||
"bitable:app:readonly",
|
||||
"bitable:app:readwrite",
|
||||
"docx:document:readonly",
|
||||
"drive:drive:readonly",
|
||||
"如果要读取文档链接里的内容,需要把飞书应用/机器人加入目标文档协作者。",
|
||||
],
|
||||
tables=[
|
||||
schemas.FeishuTableTemplate(
|
||||
table_key="session",
|
||||
table_name="答疑场次",
|
||||
env_name="FEISHU_TABLE_ID_SESSION",
|
||||
required_fields=[
|
||||
"场次编号",
|
||||
"标题",
|
||||
"日期",
|
||||
"答疑老师",
|
||||
"飞书资料链接",
|
||||
"转写稿",
|
||||
"处理状态",
|
||||
"问答总数",
|
||||
"待审核数",
|
||||
"已审核数",
|
||||
"已入库数",
|
||||
"失败原因",
|
||||
],
|
||||
),
|
||||
schemas.FeishuTableTemplate(
|
||||
table_key="raw_qa",
|
||||
table_name="原始问答",
|
||||
env_name="FEISHU_TABLE_ID_RAW_QA",
|
||||
required_fields=[
|
||||
"问答编号",
|
||||
"场次编号",
|
||||
"原始问题",
|
||||
"问题整理版",
|
||||
"原始回答",
|
||||
"回答整理版",
|
||||
"AI建议标准问题",
|
||||
"AI建议标准回答",
|
||||
"回答人",
|
||||
"一级主题",
|
||||
"问题标签",
|
||||
"课程阶段",
|
||||
"适用人群",
|
||||
"情绪强度",
|
||||
"风险等级",
|
||||
"风险类型",
|
||||
"风险说明",
|
||||
"是否需脱敏",
|
||||
"脱敏状态",
|
||||
"审核状态",
|
||||
"建议入库",
|
||||
"来源时间戳",
|
||||
"审核备注",
|
||||
],
|
||||
),
|
||||
schemas.FeishuTableTemplate(
|
||||
table_key="standard_qa",
|
||||
table_name="标准问答",
|
||||
env_name="FEISHU_TABLE_ID_STANDARD_QA",
|
||||
required_fields=[
|
||||
"标准编号",
|
||||
"来源原始问答ID",
|
||||
"来源场次ID",
|
||||
"标准问题",
|
||||
"标准回答",
|
||||
"相似问法",
|
||||
"一级主题",
|
||||
"问题标签",
|
||||
"课程阶段",
|
||||
"适用人群",
|
||||
"回答边界",
|
||||
"禁止表达",
|
||||
"风险等级",
|
||||
"审核状态",
|
||||
"调用状态",
|
||||
"禁用原因",
|
||||
],
|
||||
),
|
||||
],
|
||||
notes=[
|
||||
"场次表中只有处理状态为空、unprocessed 或 未处理 的记录会被后台扫描处理。",
|
||||
"如果暂时不接文档 API,可以直接把完整文字稿粘到场次表的 转写稿 字段。",
|
||||
"敏感密钥不要写入 system_settings,请写入 backend/.env 或运行环境变量。",
|
||||
],
|
||||
)
|
||||
Reference in New Issue
Block a user