wendajia/README.md
2026-09-05 17:33:21 +08:00

2.7 KiB
Raw Blame History

【问大家】运营管理后台

当前阶段初始化 React + FastAPI 项目,仅实现运营后台登录闭环和登录后工作台视觉占位页。

运行

后端(PowerShell):

cd backend
python -m pip install -r requirements.txt
python -m uvicorn app.main:app --reload --port 8000

前端:

cd frontend
npm install
npm run dev

默认演示账号:

  • 超级管理员:admin / admin123456
  • 普通运营:operator / operator123456

正式环境请通过环境变量覆盖账号、密码、SECRET_KEY 和 DATABASE_URL。

钉钉工作台免登

从钉钉工作台打开时,前端通过钉钉 JSAPI requestAuthCode 获取临时授权码,后端换取用户身份并建立会话,不再跳转到 OAuth 确认页。请在钉钉开放平台创建并发布企业内部应用,开通工作台免登/获取用户身份权限,然后在项目根目录 .env 填写:

DINGTALK_CORP_ID=企业CorpId
DINGTALK_AGENT_ID=应用AgentId
DINGTALK_CLIENT_ID=钉钉应用ClientID
DINGTALK_CLIENT_SECRET=钉钉应用ClientSecret
DINGTALK_REDIRECT_URI=https://你的域名/api/admin/auth/dingtalk/callback
FRONTEND_URL=https://你的前端域名
# 可选:限制允许登录的 unionId,多个用逗号分隔
DINGTALK_ALLOWED_UNION_IDS=
# 可选:指定 unionId 自动授予超级管理员
DINGTALK_SUPER_ADMIN_UNION_IDS=

DINGTALK_CLIENT_ID/SECRET 填应用的 AppKey/AppSecret;DINGTALK_CORP_ID 填企业 CorpId;DINGTALK_AGENT_ID 用于标识工作台应用。当前免登接口不使用浏览器 OAuth 回调,但保留回调配置兼容旧入口。未配置免登参数时,普通浏览器仍可使用账号密码登录。

MySQL 建表脚本位于 backend/schema.sql。未配置 DATABASE_URL 时,开发环境会自动使用项目 data/app.db 运行,便于本地快速验收。

问答助手大模型配置

问答助手使用 OpenAI 兼容的 Chat Completions 接口。启动后端前设置:

也可以在项目根目录创建 .env 文件填写这些配置;后端启动时会自动读取。

$env:LLM_API_KEY="你的 API Key"
$env:LLM_BASE_URL="https://api.openai.com/v1"
$env:LLM_MODEL="gpt-4o-mini"
$env:LLM_VISION_MODEL="qwen3-vl-plus"

也支持 DeepSeek 等兼容服务,例如将 LLM_BASE_URL 设为 https://api.deepseek.com/v1,并将 LLM_MODEL 设为服务商对应的模型名。未配置 LLM_API_KEY 时,点击生成会返回明确的配置提示,不会伪造生成结果。

LLM_VISION_MODEL 用于回答用户上传截图的识图/OCR;如果不填写,则沿用 LLM_MODEL。使用 OpenLux 时请填写控制台中已开通图片输入的模型,例如 qwen3-vl-plus。