# 大本营答疑资产后台系统 MVP 这是一个用于沉淀“大本营每周三答疑内容”的后台系统 MVP。第一阶段跑通闭环:资料进入、系统发现、AI 清洗、数据库沉淀、人工审核、标准问答入库、人工标记可调用。 ## 系统架构 - 前端:Next.js + React + TypeScript + TailwindCSS,提供独立网页后台。 - 后端:FastAPI + SQLAlchemy + Pydantic + APScheduler。 - 数据库:优先 PostgreSQL;未配置 `DATABASE_URL` 时自动使用本地 SQLite。 - AI:兼容 OpenAI Chat Completions API;没有 `OPENAI_API_KEY` 时走 mock AI。 - 飞书:保留真实 API 适配器;没有飞书密钥时走 mock mode。 ## 第一阶段功能 - 答疑场次管理,支持手动创建测试场次。 - 手动触发或定时触发黑灯任务。 - mock 飞书扫描与 mock 转写稿读取。 - AI 清洗模块,真实 OpenAI 兼容 API 与 mock 输出双通道。 - 原始问答拆解、标签、课程阶段、风险等级、脱敏状态入库。 - 待审核卡片页,支持通过入库、修改后通过、需修改、不入库、禁止使用、标记高风险、标记需脱敏。 - 标准问答库,审核通过后默认 `not_callable`,必须人工标记后才能进入可调用库。 - 智能体可调用库接口只返回 `approved + callable + low/medium + 已脱敏/无需脱敏` 的标准问答。 - 任务日志和审核日志可追溯。 ## 不做什么 - 不做正式“千问千答智能体”。 - 不做学员端问答界面。 - 不绕过人工审核。 - 不让未审核内容进入标准问答库或可调用库。 - 不把 AI 生成内容伪装成院长或辅导老师原话。 - 不做心理诊断、医疗建议、法律判断或课程效果承诺。 ## 本地启动 后端: ```bash cd hy_qa_asset_backend/backend python -m venv .venv .venv\Scripts\activate pip install -r requirements.txt uvicorn app.main:app --reload --host 127.0.0.1 --port 8000 ``` 前端: ```bash cd hy_qa_asset_backend/frontend npm install npm run dev ``` 访问: - 前端后台:http://localhost:3000 - 后端 API:http://127.0.0.1:8000/docs ## 环境变量 复制 `.env.example` 为 `.env`,按需填写: - `DATABASE_URL`:为空时使用 SQLite;PostgreSQL 示例:`postgresql+psycopg://hyqa:hyqa@localhost:5432/hyqa` - `OPENAI_API_KEY`:为空时使用 mock AI。 - `OPENAI_BASE_URL`:OpenAI 兼容服务地址,可选。 - `MODEL_NAME`:默认 `gpt-4.1-mini`。 - `FEISHU_APP_ID`、`FEISHU_APP_SECRET`、`FEISHU_APP_TOKEN`、`FEISHU_TABLE_ID_SESSION`、`FEISHU_TABLE_ID_RAW_QA`、`FEISHU_TABLE_ID_STANDARD_QA`:真实飞书接入所需。若多维表格 URL 是 `/wiki/`,可以填写 `FEISHU_WIKI_NODE_TOKEN` 代替 `FEISHU_APP_TOKEN`,后台会自动解析真实 bitable app_token。 - `SCHEDULE_CRON`:默认 `0 1 * * *`。 - `SCHEDULE_TIMEZONE`:默认 `Asia/Shanghai`。 - `MOCK_MODE`:默认 `true`。 敏感密钥只从环境变量读取,不写入数据库,也不会在设置页明文展示。 ## Mock 模式测试 没有飞书和 OpenAI 密钥也可以跑通: 1. 启动后端和前端。 2. 打开 `/dashboard`,点击“手动触发处理任务”。 3. 后端会创建 mock 场次,读取 `backend/app/seed/sample_transcript_001.txt`。 4. `ai_cleaner` 在没有 `OPENAI_API_KEY` 时返回 mock 拆解结果。 5. 进入 `/review` 查看待审核问答卡片。 也可以在 `/sessions` 手动创建场次,填写转写稿,再点击“处理”或“重跑”。 ## 手动触发黑灯任务 前端:在 `/dashboard` 点击“手动触发处理任务”。 API: ```bash curl -X POST http://127.0.0.1:8000/api/tasks/run-now ``` 定时任务由 APScheduler 在后端启动时注册,默认每天 `Asia/Shanghai` 凌晨 1 点运行一次。 ## 审核流程 1. `/review` 展示 `review_status=pending` 的原始问答。 2. 点击“通过入库”后,原始问答变为 `approved`。 3. 若 `suggested_to_standard_qa=true`,且不是高风险/禁止、且无需脱敏或已完成脱敏,系统创建 `standard_qa_items`。 4. 标准问答默认 `audit_status=approved`、`call_status=not_callable`。 5. 审核人进入 `/standard-qa`,手动点击“可调用”。 6. `/callable-qa` 只展示满足强制筛选规则的内容。 高风险内容、禁止内容、未脱敏内容不会自动进入可调用库。 ## 风险边界 系统逻辑和 Prompt 共同遵守: 1. AI 只能辅助清洗、拆解、打标签、风险初筛,不能替代人工审核。 2. 原始问题和问题整理版分开保存。 3. 原始回答、回答整理版、标准回答分开保存。 4. 未审核内容不能进入标准问答库。 5. 未审核内容不能被未来智能体调用。 6. 高风险内容必须人工复审。 7. 涉及学员隐私必须标记脱敏。 8. 不做心理诊断、医疗建议、法律判断或课程效果承诺。 9. 涉及孩子、婚姻、家庭矛盾、姓名、电话、城市、学校、单位等信息,默认标记风险。 10. 不确定是否有风险时,默认中风险并进入人工审核。 ## 飞书接入说明 第一版 `backend/app/services/feishu_client.py` 已预留: - `scan_unprocessed_sessions` - `fetch_transcript` - `update_session_status` - `write_raw_qa_items` - `write_standard_qa_items` 真实飞书 API 已接入:后台会获取 `tenant_access_token`,扫描多维表格场次表,读取 `转写稿` 字段或尝试通过 docx 纯文本接口读取 `飞书资料链接`,处理完成后回写场次状态、原始问答表和标准问答表。 建议在飞书多维表格中建立 3 张表: - `答疑场次`:`场次编号`、`标题`、`日期`、`答疑老师`、`飞书资料链接`、`转写稿`、`处理状态`、`问答总数`、`待审核数`、`已审核数`、`已入库数`、`失败原因` - `原始问答`:`问答编号`、`场次编号`、`原始问题`、`问题整理版`、`原始回答`、`回答整理版`、`AI建议标准问题`、`AI建议标准回答`、`回答人`、`一级主题`、`问题标签`、`课程阶段`、`适用人群`、`情绪强度`、`风险等级`、`风险类型`、`风险说明`、`是否需脱敏`、`脱敏状态`、`审核状态`、`建议入库`、`来源时间戳`、`审核备注` - `标准问答`:`标准编号`、`来源原始问答ID`、`来源场次ID`、`标准问题`、`标准回答`、`相似问法`、`一级主题`、`问题标签`、`课程阶段`、`适用人群`、`回答边界`、`禁止表达`、`风险等级`、`审核状态`、`调用状态`、`禁用原因` 可打开 `GET /api/feishu/setup-guide` 查看字段模板,打开 `GET /api/feishu/status` 检查飞书 token 是否可用。应用需要具备多维表格读写、文档读取等权限;如果要读取已有飞书文档,需要将飞书应用/机器人加入该文档协作者。 ## AI 接入说明 `backend/app/services/ai_cleaner.py` 会读取 `backend/app/prompts/qa_cleaning_prompt.md`,调用 OpenAI 兼容 `/chat/completions`,解析 JSON 数组并校验字段。 接入真实 OpenAI 兼容 API 时,填写: - `OPENAI_API_KEY` - `MODEL_NAME` - `OPENAI_BASE_URL`,如果使用非官方兼容服务 如果 AI 返回非法 JSON,任务会记录失败原因。 ## Docker ```bash cd hy_qa_asset_backend docker compose up --build ``` 包含 PostgreSQL、backend、frontend 三个服务。默认仍使用 mock mode。 ## 后续迭代建议 - 接入真实飞书多维表格和文档 API。 - 增加登录鉴权与角色权限。 - 增加更完整的标准问答编辑表单和批量审核。 - 增加脱敏处理工作台。 - 增加 AI 结果二次校验和人工差异对比。 - 增加迁移工具 Alembic、测试用例和生产部署配置。