wendajia/README.md
2026-09-02 10:25:34 +08:00

65 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 【问大家】运营管理后台
当前阶段初始化 React + FastAPI 项目,仅实现运营后台登录闭环和登录后工作台视觉占位页。
## 运行
后端(PowerShell):
```powershell
cd backend
python -m pip install -r requirements.txt
python -m uvicorn app.main:app --reload --port 8000
```
前端:
```powershell
cd frontend
npm install
npm run dev
```
默认演示账号:
- 超级管理员:`admin` / `admin123456`
- 普通运营:`operator` / `operator123456`
正式环境请通过环境变量覆盖账号、密码、`SECRET_KEY` 和 `DATABASE_URL`。
## 钉钉工作台登录
运营后台支持从钉钉工作台发起 OAuth 登录。请在钉钉开放平台创建企业内部应用,配置 OAuth 回调地址(必须使用 HTTPS,开发环境可使用内网穿透地址),然后在项目根目录 `.env` 填写:
```env
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_REDIRECT_URI` 完全一致。未配置 ClientID/ClientSecret 时,登录页仍可使用原有账号密码登录,并会提示钉钉登录尚未配置。
MySQL 建表脚本位于 `backend/schema.sql`。未配置 `DATABASE_URL` 时,开发环境会自动使用项目 `data/app.db` 运行,便于本地快速验收。
## 问答助手大模型配置
问答助手使用 OpenAI 兼容的 Chat Completions 接口。启动后端前设置:
也可以在项目根目录创建 `.env` 文件填写这些配置;后端启动时会自动读取。
```powershell
$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`。