# LangChain 学习项目 这是一个 LangChain 学习演示项目,涵盖了从基础调用到高级应用(RAG、Agent)的完整示例。 ## 项目结构 ``` lang-demo1/ ├── notebooks/ # Jupyter 学习笔记 │ ├── demo1.ipynb # 核心示例(7个主题) │ └── sample.ipynb # 基础示例 ├── src/ # 可复用代码 │ ├── utils/ # 工具函数 │ └── chains/ # 自定义链 ├── tests/ # 单元测试 ├── data/ # 数据文件 └── models/ # 模型文件 ``` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` 主要依赖: - `langchain` - LangChain 核心库 - `langchain-openai` - OpenAI 集成 - `langchain-community` - 社区工具 - `faiss-cpu` - 向量数据库 - `python-dotenv` - 环境变量管理 ### 2. 配置环境变量 在项目根目录创建 `.env` 文件: ```env # OpenAI API 配置 OPENAI_BASE_URL=你的API地址 OPENAI_API_KEY1=你的API密钥 # LangSmith 追踪配置(可选) LANGSMITH_TRACING=true LANGSMITH_API_KEY=你的LangSmith密钥 LANGSMITH_PROJECT=你的项目名 ``` ### 3. 运行示例 ```bash jupyter notebook # 或 jupyter lab ``` 然后打开 `notebooks/demo1.ipynb` 开始学习。 ## 学习内容 ### 1. 基础 LLM 调用 使用 `ChatOpenAI` 进行基本的模型调用 ### 2. 提示词模板 使用 `ChatPromptTemplate` 创建结构化提示词 ### 3. 输出解析器 使用 `JsonOutputParser` 将输出解析为 JSON 格式 ### 4. 向量存储 使用 FAISS 向量数据库存储和检索文档 ### 5. RAG (检索增强生成) 结合向量检索和 LLM 实现知识问答 ### 6. Agent 系统 使用 LangChain Agent 实现工具调用和自主决策 ## 技术栈 - **LLM**: GPT-4.1-nano (通过 OpenAI 兼容接口) - **Embeddings**: text-embedding-3-small - **向量数据库**: FAISS - **Web 抓取**: BeautifulSoup4 - **开发环境**: Jupyter Notebook/Lab ## 注意事项 - 代码中使用 `OPENAI_API_KEY1` 而不是标准的 `OPENAI_API_KEY` - 向量数据存储在内存中,未做持久化 - `.env` 文件包含敏感信息,已在 `.gitignore` 中排除 ## 学习资源 - [LangChain 官方文档](https://python.langchain.com/) - [LangChain 中文文档](https://www.langchain.com.cn/)