8.3 测试与部署
🎯 小白理解指南:为什么要测试和部署?
代码写完不等于完成!还需要:
- 测试:确保代码没有 bug(就像汽车出厂前要检测)
- 部署:把代码放到服务器上运行(就像把产品放到货架上卖)
不测试直接上线 = 开着没检测过的车上高速,迟早出事!
单元测试
🎯 小白理解指南:什么是"单元测试"?
单元测试就是一个一个功能地检查:
- Agent 能创建成功吗?✅
- 搜索工具能用吗?✅
- 计算器算得对吗?✅
pytest是 Python 最流行的测试工具,运行pytest命令就能自动执行所有测试。
python
import pytest
from agent import create_production_agent
def test_agent_creation():
"""测试 Agent 创建
🎯 检查:Agent 能正常创建,不报错
"""
agent = create_production_agent()
assert agent is not None # 不是 None 就通过
def test_search_tool():
"""测试搜索工具
🎯 检查:搜索 "test" 能返回包含 "test" 的结果
"""
from tools import search_web
result = search_web.invoke({"query": "test"})
assert "test" in result # 结果里有 "test" 就通过
def test_calculator_tool():
"""测试计算器
🎯 检查:计算 2+2 能返回包含 "4" 的结果
"""
from tools import calculator
result = calculator.invoke({"expression": "2+2"})
assert "4" in result # 结果里有 "4" 就通过🎯 小白提示:assert 是什么?
assert是"断言"——声称某件事应该是真的。
- 如果是真的,测试通过 ✅
- 如果是假的,测试失败 ❌,pytest 会告诉你哪里出错了
部署清单
🎯 小白理解指南:部署清单是什么?
就像出远门前的行李清单,确保不遗漏任何东西:
检查项 说明 常见问题 环境变量 配置 API 密钥等 忘了设置,程序找不到密钥 依赖安装 安装需要的包 缺包,程序报错 运行测试 确保没 bug 有 bug 上线,用户投诉 文档完善 写清怎么用 别人接手看不懂
- [ ] 环境变量配置(
.env文件里设置OPENAI_API_KEY) - [ ] 依赖安装(
poetry install或pip install -r requirements.txt) - [ ] 运行测试(
pytest确保全部通过) - [ ] 文档完善(README.md 写清楚怎么用)
- [ ] Docker 容器化(可选,方便在任何机器上运行)
🎯 小白提示:部署到哪里?
常见的部署方式:
- 本地运行:自己电脑上跑(开发调试用)
- 云服务器:AWS、阿里云等(正式上线用)
- Docker:打包成容器,哪里都能跑(推荐)
- Serverless:按调用次数付费(省钱)
下一节:8.4 小结和下一步