ai-evals-course/recipe-chatbot
GitHub: ai-evals-course/recipe-chatbot
围绕食谱聊天机器人构建的 AI 评估实战课程,通过五个递进作业教授 LLM 应用的系统化评估与改进方法。
Stars: 319 | Forks: 302
# 食谱聊天机器人 - AI 评估课程
本代码库包含了一门围绕食谱聊天机器人构建的完整 AI 评估课程。通过 5 个循序渐进的家庭作业,你将学习评估和改进 AI 系统的实用技巧。
## 快速开始
1. **克隆与设置**
git clone https://github.com/ai-evals-course/recipe-chatbot.git
cd recipe-chatbot
uv sync
source .venv/bin/activate
2. **配置环境**
cp env.example .env
# 编辑 .env 以添加你的模型和 API 密钥
3. **运行聊天机器人**
uv run uvicorn backend.main:app --reload --reload-include '*.md'
# 打开 http://127.0.0.1:8000
## 课程概述
**附加内容**:[使用 AI 辅助编程解决作业问题](https://link.courses.maven.com/c/eJw80M2upCAQBeCngZ0Gil8XLGbja5gCymkTbAyoyX37id2Tu6rUl7OoOqm-ajuXLQeQk554qlfr9OxST8rxHHQWMhpOQTrrrFIgNacdt7Kkgr2H2CrmhP38r-fPQYHerZZCmdP7Xr5-XVsOR6t5hKSzIXKDB2MHnQwNHiQMWhIJQ-C9Q_4K3mmbY1zRC_LZw-Scw9XHKCe_Kot8CyDACimMdFIpNRpjwGaX_JogSeuZFt9_-rjjTe8x1Z1vfVlb3ZePhBlLJ17C6zyPztQfBjOD-TfNYD6wFXwnGgrGzmCmG8szQYAZFIO5_5SC8Xpsr_kq9El5J4ziLWwdMY1rwfPFtPj7VPE54w7wLwAA__8a93gB)

### 作业进度
1. **HW1:基础 Prompt 工程** (`homeworks/hw1/`)
- 编写系统 prompt 并扩展测试查询
- 演示:查看 HW2 的演示以获取 HW1 的内容
2. **HW2:错误分析与失败分类** (`homeworks/hw2/`)
- 系统性的错误分析和失败模式识别
- **互动演示**:
- 代码:`homeworks/hw2/hw2_walkthrough.ipynb`
- [视频 1](https://youtu.be/h9oAAAYnGx4):代码演示
- [视频 2](https://youtu.be/AKg27L4E0M8):开放式与轴向编码演示
3. **HW3:LLM-as-Judge 评估** (`homeworks/hw3/`)
- 使用 `judgy` 库进行自动化评估
- **互动演示**:
- 代码:`homeworks/hw3/hw3_walkthrough.ipynb`
- [视频](https://youtu.be/1d5aNfslwHg):解决方案演示
4. **HW4:RAG/检索评估** (`homeworks/hw4/`)
- 带有合成查询生成的 BM25 检索系统
- **互动演示**:
- 代码:`homeworks/hw4/hw4_walkthrough.ipynb`
- [视频](https://youtu.be/GMShL5iC8aY):解决方案演示
5. **HW5:Agent 失败分析** (`homeworks/hw5/`)
- 分析对话轨迹和失败模式
- **互动演示**:
- 代码:`homeworks/hw5/hw5_walkthrough.ipynb`
- [视频](https://youtu.be/z1oISsDUKLA):解决方案演示
### 核心功能
## 项目结构
```
recipe-chatbot/
├── backend/ # FastAPI app & core logic
├── frontend/ # Chat UI (HTML/CSS/JS)
├── homeworks/ # 5 progressive assignments
│ ├── hw1/ # Prompt engineering
│ ├── hw2/ # Error analysis (with walkthrough)
│ ├── hw3/ # LLM-as-Judge (with walkthrough)
│ ├── hw4/ # Retrieval eval (with walkthroughs)
│ └── hw5/ # Agent analysis
├── annotation/ # Manual annotation tools
├── scripts/ # Utility scripts
├── data/ # Datasets and queries
└── results/ # Evaluation outputs
```
## 运行作业演示
每次作业(HW2-HW5)都包含一个独立的 Jupyter notebook 演示:
```
cd homeworks/hw2
jupyter notebook hw2_walkthrough.ipynb
```
这些演示使用 `reference_files/` 中的数据,无需任何外部脚本即可运行。每个 notebook 包含:
- 数据加载与探索
- 分步解决方案代码
- 预期输出与分析
## 其他资源
- **标注界面**:运行 `python annotation/annotation.py` 进行手动评估
- **批量测试**:使用 `python scripts/bulk_test.py` 测试多个查询
- **轨迹分析**:所有对话均保存为 JSON 格式以供分析
## 环境变量
在 `.env` 文件中配置以下内容:
- `MODEL_NAME`:用于聊天机器人的 LLM 模型(例如 `openai/gpt-5-chat-latest`、`anthropic/claude-3-sonnet-20240229`)
- `MODEL_NAME_JUDGE`:用于 judge 的 LLM 模型,可以比聊天机器人模型更小(例如 `openai/gpt-5-mini`、`anthropic/claude-3-haiku-20240307`)
- API 密钥:`OPENAI_API_KEY`、`ANTHROPIC_API_KEY` 等。
有关支持的提供商,请参阅 [LiteLLM 文档](https://docs.litellm.ai/docs/providers)。
## 课程理念
本课程强调:
- **实践经验**重于理论
- **系统化评估**重于“直觉”
- **循序渐进的复杂度** - 每次作业都建立在前一次的基础之上
- 用于真实世界 AI 评估的**行业标准技术**
标签:DLL 劫持, Hex文件处理, NoSQL, RAG, 人工智能, 大语言模型, 提示词工程, 教程, 模型评估, 用户模式Hook绕过, 策略决策点, 逆向工具