langchain-learning-kit/NEXT_STEPS.md

224 lines
5.5 KiB
Markdown
Raw Normal View History

# 下一步完成指南
## 📊 当前状态
已完成基础架构约30%
- ✅ 完整的项目结构
- ✅ 数据库层(模型 + 迁移)
- ✅ 配置和工具模块
- ✅ ModelManager 服务
## 🔜 剩余工作
### 需要创建的文件(按优先级)
#### 1. 服务层(高优先级)
**`app/services/job_manager.py`** - 异步任务管理器
```python
# 核心功能:
# - submit_job(job_fn, *args, **kwargs) -> str
# - get_job_status(job_id) -> Dict
# - wait_for_job(job_id, timeout) -> Any
```
**`app/services/kb_manager.py`** - 知识库管理器
```python
# 核心功能:
# - create_kb(name, description) -> KnowledgeBase
# - ingest_documents(kb_id, docs, embedding_name) -> str
# - query_kb(kb_id, query, k) -> List[Document]
# - save_index(kb_id), load_index(kb_id)
```
**`app/services/conv_manager.py`** - 会话管理器
```python
# 核心功能:
# - create_conversation(user_id, title) -> Conversation
# - chat(conv_id, user_input, kb_id, llm_name) -> Message
# - get_messages(conv_id, limit, offset) -> List[Message]
```
**`app/services/agent_orchestrator.py`** - 智能体编排器
```python
# 核心功能:
# - run_agent(agent_name, input, llm_name, tools, kb_id) -> Dict
# - get_logs(run_id) -> List[ToolCall]
```
**`app/tools/retriever.py`** - 检索工具
**`app/tools/calculator.py`** - 计算器工具
#### 2. API 层(中优先级)
**`app/api/v1/models.py`** - 模型 API
- POST /api/v1/models
- GET /api/v1/models
- GET /api/v1/models/{id}
- PUT /api/v1/models/{id}
- DELETE /api/v1/models/{id}
**`app/api/v1/kb.py`** - 知识库 API
- POST /api/v1/kb
- GET /api/v1/kb
- POST /api/v1/kb/{kb_id}/ingest
- POST /api/v1/kb/{kb_id}/query
- GET /api/v1/kb/{kb_id}/status
**`app/api/v1/conv.py`** - 会话 API
- POST /api/v1/conversations
- GET /api/v1/conversations/{id}
- POST /api/v1/conversations/{id}/messages
- GET /api/v1/conversations/{id}/messages
**`app/api/v1/agent.py`** - 智能体 API
- POST /api/v1/agent/run
- GET /api/v1/agent/logs/{run_id}
#### 3. FastAPI 主程序(高优先级)
**`app/main.py`** - 应用入口
```python
# 核心内容:
# - FastAPI 应用初始化
# - 路由注册
# - 全局异常处理器
# - CORS 中间件
# - 健康检查端点
# - 启动和关闭事件
```
#### 4. Docker 配置(中优先级)
**`docker/Dockerfile`**
**`docker/docker-compose.yml`**
**`.dockerignore`**
#### 5. 测试(低优先级)
**`tests/conftest.py`** - pytest 配置
**`tests/unit/test_model_manager.py`**
**`tests/unit/test_kb_manager.py`**
**`tests/integration/test_api_models.py`**
**`tests/integration/test_api_kb.py`**
#### 6. 文档(低优先级)
**`docs/architecture.md`** - 架构文档
**`docs/runbook.md`** - 运维手册
**`docs/api.md`** - API 使用指南
## 🚀 快速完成建议
### 方式 1: 继续使用 AI 助手
向 AI 助手请求:
```
请继续创建以下文件:
1. src/app/services/job_manager.py
2. src/app/services/kb_manager.py
... (按上述列表)
```
### 方式 2: 参考设计文档手动实现
所有接口定义和实现细节都在:
- `docs/langchain-learning-kit/DESIGN_langchain-learning-kit.md`
- `docs/langchain-learning-kit/TASK_langchain-learning-kit.md`
### 方式 3: 最小可用版本MVP
先实现最核心的功能,跳过测试和文档:
1. 完成服务层4个文件
2. 实现 2个 APIModel + KB
3. 创建 main.py
4. 基础 Docker 配置
预计时间4-5 小时
## 📝 当前可以做的事情
### 1. 安装依赖
```bash
cd langchain-learning-kit
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
```
### 2. 配置环境变量
```bash
cp .env.example .env
# 编辑 .env填入你的配置
# - DATABASE_URL
# - OPENAI_API_KEY
```
### 3. 初始化数据库
```bash
# 方式 1: 使用 Alembic
cd app
alembic upgrade head
# 方式 2: 使用初始化脚本
python scripts/init_db.py
```
### 4. 测试已完成的模块
创建测试脚本 `test_current.py`
```python
from app.config import get_settings
from app.db.session import init_db_manager
from app.services.model_manager import ModelManager
# 测试配置
settings = get_settings()
print(f"✓ 配置加载成功: {settings.app_name}")
# 测试数据库
db_manager = init_db_manager(settings)
print(f"✓ 数据库连接成功: {settings.database_url}")
# 测试 ModelManager
with db_manager.session_scope() as session:
manager = ModelManager(session, settings)
print("✓ ModelManager 初始化成功")
print("\n所有已完成模块测试通过")
```
## ⚠️ 重要提示
1. **MySQL 必须运行**: 确保 MySQL 服务启动,数据库已创建
2. **OpenAI API Key**: 需要有效的 API Key 才能测试 LLM 功能
3. **Python 版本**: 需要 Python 3.11+
## 🎯 推荐完成顺序
1. **立即创建**:
- job_manager.py (最简单,无外部依赖)
- main.py (整合现有代码,可以启动服务)
- models.py API (可以测试 ModelManager)
2. **随后创建**:
- kb_manager.py + kb.py API (知识库核心功能)
- conv_manager.py + conv.py API (对话功能)
3. **最后创建**:
- agent_orchestrator.py + tools (高级功能)
- Docker 配置
- 测试和文档
## 📖 参考资料
- LangChain 文档: https://python.langchain.com/docs/get_started/introduction
- FastAPI 文档: https://fastapi.tiangolo.com/
- FAISS 文档: https://github.com/facebookresearch/faiss
- SQLAlchemy 文档: https://docs.sqlalchemy.org/
## 💡 提示
所有的接口定义、数据流、异常处理都已经在设计文档中详细说明。
实现时可以直接参考 `DESIGN_langchain-learning-kit.md` 中的代码示例。