|
|
2 ماه پیش | |
|---|---|---|
| .. | ||
| backend | 2 ماه پیش | |
| frontend | 2 ماه پیش | |
| README.md | 2 ماه پیش | |
| restart.sh | 2 ماه پیش | |
一个基于 hello_agents 框架开发的交互式猜人物游戏。AI Agent 随机扮演一位历史人物、神话人物或网络红人,用户通过多轮对话提问来猜测其身份。
afei-GuessWhoAmI/
├── restart.sh # 一键启动脚本(前后端)
├── backend/
│ ├── main.py # FastAPI 入口,API 路由
│ ├── agents.py # Agent 核心逻辑(人物生成、角色扮演、猜测判断)
│ ├── game_logic.py # 游戏状态管理(GameSession)
│ ├── config.py # 配置管理(Settings 单例)
│ ├── models.py # Pydantic 请求/响应模型
│ ├── requirements.txt # Python 依赖
│ ├── .env.example # 环境变量模板
│ └── tools/
│ ├── tavily_search_tool.py # Tavily 搜索工具(生成提示)
│ └── search_image_tool.py # Wikipedia 图片搜索工具
├── frontend/
│ ├── index.html # 主页面
│ ├── style.css # 样式文件
│ └── app.js # 交互逻辑
└── logs/
├── backend.log # 后端运行日志
└── frontend.log # 前端服务日志
cd /home/afei/hello-agents/Co-creation-projects/afei-GuessWhoAmI/backend
pip install -r requirements.txt
复制模板并填写配置:
cp backend/.env.example backend/.env
编辑 backend/.env:
# LLM 配置(ModelScope API,必填)
LLM_MODEL_ID=qwen-flash
LLM_API_KEY=your_modelscope_api_key
LLM_BASE_URL=https://api-inference.modelscope.cn/v1/
LLM_TIMEOUT=180
# Tavily 搜索 API(必填,用于搜索增强提示)
# 获取 Key: https://app.tavily.com/
TAVILY_API_KEY=your_tavily_api_key
使用 restart.sh 脚本同时启动前后端服务:
cd /home/afei/hello-agents/Co-creation-projects/afei-GuessWhoAmI
bash restart.sh
脚本会自动:
启动成功后输出示例:
✅ All services started successfully!
🔧 Backend → http://localhost:8000
🔧 API Docs → http://localhost:8000/docs
🌐 Frontend → http://localhost:3000
| 服务 | 地址 |
|---|---|
| 🌐 游戏前端 | http://localhost:3000 |
| 🔧 后端 API | http://localhost:8000 |
| 📖 API 文档 | http://localhost:8000/docs |
如需单独启动各服务:
# 启动后端
cd backend
python main.py
# 启动前端(另开终端)
cd frontend
python -m http.server 3000
| 方法 | 路径 | 说明 |
|---|---|---|
POST |
/api/game/start |
开始新游戏(LLM 生成人物 + 预生成提示) |
POST |
/api/game/chat |
向 Agent 提问(角色扮演对话) |
POST |
/api/game/guess |
提交猜测(语义匹配判断,猜对返回人物图片) |
GET |
/api/game/hint |
获取下一条提示 |
POST |
/api/game/end |
结束当前游戏 |
GET |
/api/game/status |
获取当前游戏状态 |
qwen-flash)| 配置项 | 默认值 | 说明 |
|---|---|---|
LLM_MODEL_ID |
qwen-flash |
使用的 LLM 模型(推荐 flash 系列以降低延迟) |
LLM_BASE_URL |
ModelScope API | LLM 接口地址 |
LLM_TIMEOUT |
180 |
LLM 请求超时(秒) |
TAVILY_API_KEY |
无 | Tavily 搜索 Key(必填),用于搜索人物资料生成提示,获取:https://app.tavily.com/ |
MAX_QUESTIONS |
10 |
每局最大提问次数 |
MAX_HINTS |
3 |
每局最大提示次数 |
运行日志保存在 logs/ 目录:
# 实时查看后端日志
tail -f logs/backend.log
# 实时查看前端日志
tail -f logs/frontend.log
LLM 调用失败
backend/.env 中的 LLM_API_KEY 和 LLM_BASE_URL每次生成同一个人物
Tavily 搜索不可用
backend/.env 中的 TAVILY_API_KEY 是否正确填写端口被占用
restart.sh 会自动清理占用端口的进程,重新运行脚本即可CORS 错误