声明:本AI应用开发系列教程首发在同名公众号:王中阳,未经授权禁止转载。
系统架构概览
这份全面的快速入门指南将帮助你在几分钟内让系统运行起来。该企业级面试系统基于字节跳动的 Hertz 框架和 Eino AI 框架构建,提供智能简历分析、问题生成和答案评估功能。
先决条件
开始之前,请确保你的系统满足以下要求:
| 组件 | 最低版本 | 推荐版本 |
|---|---|---|
| Go | 1.24+ | 1.24.10 |
| Node.js | 18.0+ | 20.x |
| MySQL | 8.0+ | 8.0+ |
| Redis | 7.0+ | 7.0+ |
| Docker | 24.0+ | 最新版 |
| Docker Compose | 2.0+ | 最新版 |
必需的 API 密钥
你需要访问至少以下一个 AI 模型提供商:
| 提供商 | 必需项 | 用途 |
|---|---|---|
| OpenAI | API 密钥 | 面试使用的语言模型 |
| ByteDance Ark | AccessKey/SecretKey | 备选 AI 模型 |
| Google Search | API 密钥 + 搜索引擎 ID | 网络搜索功能 |
快速部署选项
🚀 选项 1:一键 Docker 部署(推荐)
这是让整个系统连同所有依赖运行起来的最快方式。
git clone 项目地址可以私信博主微信获得:wangzhongyang1993
cd go-eino-interview-agent
# 2. 创建环境文件
cp .env.example .env
# 使用你的 API 密钥和配置编辑 .env 文件
# 3. 启动所有服务
docker-compose up -d
# 4. 等待服务初始化(2-3 分钟)
docker-compose ps
所有服务运行后,访问:
- 前端:http://localhost:3000
- 后端 API:http://localhost:8888
- MySQL:localhost:3307
- Redis:localhost:6379
🛠️ 选项 2:开发环境设置
适用于希望修改和扩展系统的开发者。
后端设置
# 1. 导航到后端目录
cd backend
# 2. 安装 Go 依赖
go mod download
# 3. 复制并配置设置
cp config.example.yaml config.yaml
# 使用你的数据库和 API 配置编辑 config.yaml 文件
# 4. 启动数据库(如果不使用 Docker)
# 确保本地已运行 MySQL 和 Redis
# 5. 运行后端服务
go run main.go
前端设置
# 1. 导航到前端目录
cd frontend
# 2. 安装 Node.js 依赖
npm install
# 3. 配置 API 端点
# 编辑 src/config/api.ts 指向你的后端
# 4. 启动开发服务器
npm run dev
配置指南
后端配置 ([config.example.yaml])
主配置文件控制所有系统设置:
# 需要配置的基本设置
database:
dsn: "root:password@tcp(localhost:3306)/interview_agent?charset=utf8mb4&parseTime=True&loc=Local"
redis:
addr: "localhost:6379"
password: "your-redis-password"
# AI 模型配置
openai:
api_key: "your-openai-api-key"
model_name: "gpt-4"
# 安全设置
security:
jwt_secret: "your-jwt-secret-key"
jwt_expiration: "24h"
环境变量
在项目根目录创建 .env 文件:
# 数据库配置
DB_PASSWORD=your_mysql_password
DB_NAME=interview_agent
DB_USER=root
# Redis 配置
REDIS_PASSWORD=your_redis_password
# AI 模型配置
OPENAI_API_KEY=your_openai_key
EMBEDDING_API_KEY=your_embedding_key
EMBEDDING_MODEL=your_model_id
EMBEDDING_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
# Milvus 配置(如果使用向量搜索)
MILVUS_ADDRESS=localhost:19530
MILVUS_USERNAME=your_username
MILVUS_PASSWORD=your_password
服务依赖
系统由多个相互连接的服务组成:
| 服务 | 端口 | 描述 | 状态 |
|---|---|---|---|
| 前端 | 3000 | Next.js Web 应用 | ✅ 活动 |
| 后端 API | 8888 | Hertz REST API 服务器 | ✅ 活动 |
| MySQL | 3307 | 主数据库 | ✅ 活动 |
| Redis | 6379 | 缓存和消息队列 | ✅ 活动 |
| Nginx | 80 | 反向代理 | ✅ 活动 |
| Milvus | 19530 | 向量数据库 | ✅ 活动 |
验证步骤
部署完成后,验证系统是否正常工作:
1. 检查服务健康状态
# 验证所有容器正在运行
docker-compose ps
# 检查后端健康状态
curl http://localhost:8888/health
# 检查前端可访问性
curl http://localhost:3000
2. 测试核心功能
- 用户注册:在 http://localhost:3000 创建新账户
- 简历上传:上传 PDF 简历进行分析
- 创建面试:启动 AI 面试会话
- 回答问题:响应生成的面试问题
- 查看结果:检查你的评估报告
3. API 测试
直接测试后端 API:
# 测试用户注册
curl -X POST http://localhost:8888/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"username":"test","email":"test@example.com","password":"password123"}'
# 测试简历上传
curl -X POST http://localhost:8888/api/v1/resume/upload \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-F "file=@/path/to/resume.pdf"
故障排除
常见问题
| 问题 | 解决方案 |
|---|---|
| 端口冲突 | 在 docker-compose.yml 中更改端口 |
| 数据库连接失败 | 验证 MySQL 正在运行且凭据正确 |
| API 密钥错误 | 检查环境变量和 API 密钥有效性 |
| 前端无法加载 | 确保前端可以访问后端 API |
日志位置
- 后端日志:
./backend/logs/ - Docker 日志:
docker-compose logs [service-name] - 前端日志:浏览器控制台和终端输出
性能提示
为获得最佳性能,请确保你的系统至少有 8GB RAM 和 SSD 存储。AI 模型在初始加载时可能会消耗大量资源。
如果你遇到响应缓慢的问题,请检查 Redis 缓存配置,并在使用 Docker 时确保所有服务运行在同一网络中。
支持资源
- 文档:查看
doc/目录获取详细指南 - API 参考:访问 http://localhost:8888/swagger 获取交互式 API 文档
- 社区:加入我们的微信群获取支持(联系人:wangzhongyang1993)
恭喜!你现在拥有一个完全可用的 AI Interview Agent 平台。系统已准备好根据你的特定需求进行定制和扩展。
一起学习进步
对这个项目感兴趣的朋友欢迎关注我,私信我,免费领取学习资料,一起成长进步。
加我微信:wangzhongyang1993,备注:Eino实战。
本文首发在我的同名公众号:王中阳,未经授权禁止转载。