# langchain-study-notes **Repository Path**: cooperwx/langchain-study-notes ## Basic Information - **Project Name**: langchain-study-notes - **Description**: LangChain 官方文档全面学习记录。手写笔记 + 可运行代码,涵盖 ChatModel、Retriever、Tool 等组件的使用与源码分析。 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-01 - **Last Updated**: 2026-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LangChain 学习笔记 > 面向 LangChain Agent 开发的实践笔记,包含核心概念、代码示例和最佳实践。 ## 项目概述 本项目是 LangChain 开发的学习笔记与实践代码,涵盖 Agent 开发、多提供商 LLM 集成、中间件封装等核心内容。 ## 技术栈 - **框架**: LangChain, LangGraph, FastAPI - **LLM 提供商**: Ollama, NVIDIA, OpenAI 兼容(智谱、百灵、硅基流动、DeepSeek 等) - **工具链**: ruff (lint/format), mypy (类型检查), pytest (测试), Rich (美化输出) - **Python**: 3.13+ - **包管理**: uv ## 目录结构 ``` langchain-study-notes/ ├── langchain_agent/ # LangChain Agent 核心代码 │ ├── agents/ # Agent 实现(JsonAgent 等) │ ├── middleware/ # 中间件封装 │ ├── prompts/ # 提示词模板 │ ├── schemas/ # Pydantic 数据模型 │ ├── tools/ # 工具实现 │ └── utils/ # 工具函数(LLMFactory 等) ├── backend/ # FastAPI 后端服务 ├── docs/ # 概念详解文档 ├── jupyter/ # Jupyter 学习笔记 └── tests/ # 测试代码 ``` ## 核心模块 ### LLMFactory (`langchain_agent/utils/llm_factory.py`) 多提供商 LLM 客户端工厂,支持 Ollama、NVIDIA、OpenAI 兼容接口的统一调用。 ### JsonAgent (`langchain_agent/agents/json_agent.py`) 稳定输出 JSON 格式的 Agent,通过 Schema 验证确保输出格式正确。 ### 中间件 (`langchain_agent/middleware/langchain_official.py`) 封装 LangChain 官方中间件,包括: - `SummarizationMiddleware` - 自动摘要 - `HumanInTheLoopMiddleware` - 人工审核 - `ModelCallLimitMiddleware` / `ToolCallLimitMiddleware` - 调用限制 - `ModelFallbackMiddleware` - 模型降级 - `PIIMiddleware` - PII 检测脱敏 - `ToolRetryMiddleware` / `ModelRetryMiddleware` - 重试机制 - 等 ### AgentOutputPrinter (`langchain_agent/utils/agent_output_printer.py`) Agent 输出美化打印工具,提升调试体验。 ## 快速开始 ```bash # 安装依赖 source .venv/bin/activate uv sync # 运行后端服务 uv run python backend/main.py # 运行测试 uv run pytest -v # 代码检查 uv run ruff format . && uv run ruff check --fix . ``` ## 相关文档 - [AIMessageChunk 详解](docs/aimessage_chunk.md) - [流式模式](docs/stream_mode.md) - [工具绑定与选择](docs/bind_tools_tool_choice.md)