main: 初始化 Face to API 项目

- 添加前端抽卡台与模型配置界面
- 添加 Express API 服务与多厂商模型调用适配
- 配置本地环境示例、构建脚本和忽略规则
This commit is contained in:
2026-05-27 11:10:40 +08:00
commit cf457e8349
17 changed files with 7304 additions and 0 deletions

38
README.md Normal file
View File

@@ -0,0 +1,38 @@
# Face to API
一个 Web 对话抽卡台,用统一接口连接多家模型厂商。第一期内置:
- DeepSeekV4-pro
- DeepSeekV4-flash
- GLM5.1
- GPT-5.5
- Claude Opus 4.7
- Gemini-3.1-pro
- gemini3.5-flash
## 启动
```bash
npm install
cp .env.example .env
npm run dev
```
前端默认运行在 `http://127.0.0.1:5173`API 默认运行在 `http://127.0.0.1:8787`
## 环境变量
`.env` 中填写对应厂商的 API key。不同厂商实际模型 ID 若与界面展示名不同,可以用 `.env.example` 中的模型覆盖变量改掉。
也可以直接在 Web 页面点击左侧「配置」进入可视化配置台。每个模型都有独立的 API Base URL、模型 ID 和 API Key页面保存的模型级配置会优先于 `.env` 中的厂商级配置。API Key 会写入本地 `.face-to-api/model-configs.json`,该目录已加入 `.gitignore`
## 功能
- 系统提示词与用户提示词分窗输入,支持 `{{draw}}``{{model}}``{{provider}}``{{now}}``{{timestamp}}` 内置变量。
- 同时选择多个模型,每个模型并发执行多次抽卡。
- 每张卡流式展示上游返回的思考过程与输出结果,结束后再补齐输入 token、输出 token、总 token 和耗时。
- 流式运行中可一键停止,未完成的卡片会标记为 stopped并中断上游请求。
- 可视化模型配置页,支持每个模型独立保存 API Base URL、实际模型 ID 和 API Key。
- 配置页可开关每个模型是否展示在对话选择页,关闭后仍保留配置并可随时重新开启。
- 后端统一归一化 OpenAI-compatible、Anthropic Messages、Gemini generateContent 的 usage 字段。
- 可通过 `CUSTOM_OPENAI_*` 增加任意 OpenAI-compatible 网关模型。