# langgraph-example **Repository Path**: kenful/langgraph-example ## Basic Information - **Project Name**: langgraph-example - **Description**: demodemodemo - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-22 - **Last Updated**: 2026-01-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LangChain 和 LangGraph 示例项目 这是一个关于 LangChain 和 LangGraph 的示例项目,包含基础代码示例和完整的单元测试。 ## 项目结构 ``` langgraph-example/ ├── common/ # 公共模块 │ ├── __init__.py │ ├── ai_client.py # OpenAI 客户端配置 │ └── test_ai_client.py # 单元测试 ├── langchain/ # LangChain 示例模块 │ ├── __init__.py │ ├── example.py # 示例代码 │ └── test_example.py # 单元测试 ├── langgraph/ # LangGraph 示例模块 │ ├── __init__.py │ ├── example.py # 示例代码 │ └── test_example.py # 单元测试 ├── .env.example # 环境变量示例文件 ├── .gitignore # Git 忽略文件 ├── requirements.txt # 项目依赖 ├── pytest.ini # pytest 配置文件 └── README.md # 项目说明文档 ``` ## 安装依赖 ```bash pip install -r requirements.txt ``` ## 环境配置 ### 配置环境变量 1. 复制 `.env.example` 文件为 `.env`: ```bash cp .env.example .env ``` 2. 编辑 `.env` 文件,填入你的 OpenAI 配置: ```bash # OpenAI API Base URL BASE_URL=https://api.openai.com/v1 # OpenAI API Key (必填) API_KEY=your-api-key-here # OpenAI 模型名称 MODEL=gpt-3.5-turbo # 温度参数 (0.0-2.0) TEMPERATURE=0.7 # 最大 token 数 MAX_TOKENS=2000 ``` ### 依赖说明 - **langchain**: LangChain 核心库 - **langchain-core**: LangChain 核心组件 - **langchain-openai**: LangChain OpenAI 集成 - **langgraph**: LangGraph 库 - **openai**: OpenAI Python SDK - **pytest**: 单元测试框架 - **pytest-cov**: 测试覆盖率工具 - **pytest-asyncio**: 异步测试支持 - **python-dotenv**: 环境变量管理 ## 运行测试 ### 运行所有测试 ```bash pytest ``` ### 运行特定模块的测试 ```bash # 测试 langchain 模块 pytest langchain/ # 测试 langgraph 模块 pytest langgraph/ ``` ### 运行单个测试文件 ```bash pytest langchain/test_example.py pytest langgraph/test_example.py ``` ### 查看测试覆盖率 ```bash pytest --cov=. --cov-report=html ``` 测试报告将生成在 `htmlcov/` 目录中,打开 `htmlcov/index.html` 查看详细报告。 ### 运行详细模式 ```bash pytest -v ``` ## OpenAI 客户端使用 ### 公共 AI 客户端 项目提供了全局的 OpenAI 客户端配置模块 `common/ai_client.py`,可以在任何地方注入使用。 #### 使用示例 ```python from common.ai_client import get_ai_client, get_ai_config # 获取 AI 客户端实例(单例模式) client = get_ai_client() # 使用客户端 response = client.invoke("Hello, how are you?") print(response.content) # 获取配置信息 config = get_ai_config() print(config) # 显示配置(API Key 已隐藏) ``` #### 特性 - **单例模式**:全局共享同一个客户端实例,节省资源 - **环境变量配置**:从 `.env` 文件读取配置 - **配置验证**:自动验证必需的配置项 - **安全性**:API Key 在日志中自动隐藏 - **灵活性**:支持强制创建新实例 #### API 说明 - `get_ai_client(force_new=False)`: 获取 AI 客户端实例 - `get_ai_config()`: 获取配置实例 - `AIClientFactory.reset()`: 重置单例(用于测试) ## LangChain 示例 `langchain/example.py` 包含: - `SimpleChain` 类:演示基础的链式处理 - `greet` 函数:简单的问候函数 ## LangGraph 示例 `langgraph/example.py` 包含: - `SimpleGraph` 类:演示图结构的节点和边管理 - `GraphState` 类:演示图状态管理 ## 测试说明 ### 测试文件命名规范 本项目支持测试文件命名模式: - `*_test.py`:以 `_test` 为后缀的测试文件(如 `example_test.py`) 测试类和函数的命名规范: - 测试类:以 `Test` 为后缀(如 `ExampleTest`) - 测试函数:以 `_test` 为后缀(如 `function_test()`) ### 测试内容 每个模块都包含完整的单元测试: - 测试基本功能 - 测试边界情况 - 参数化测试 - 异常处理测试 ## 开发说明 1. 在对应的模块目录下添加新功能代码 2. 在 `*_test.py` 文件中编写对应的单元测试 3. 运行测试确保所有测试通过 4. 检查测试覆盖率,确保代码质量 ## 许可证 本项目仅供学习和参考使用。