# LangChain **Repository Path**: MayLight/lang-chain ## Basic Information - **Project Name**: LangChain - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-03 - **Last Updated**: 2025-06-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LangChain 学习课程 欢迎来到我的 LangChain 学习项目! 本项目通过一系列循序渐进的 Python 脚本,记录了从零开始学习 LangChain 核心概念的全过程。 ## 环境配置 本项目依赖于一个 `env.example` 配置文件,其格式如下: ```env # 用于大语言模型 (LLM) 的 API Key OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxx" # 你的 LLM 服务商提供的 API 地址 (例如阿里云 DashScope) OPENAI_BASE_URL="https://dashscope.aliyuncs.com/compatible-mode/v1" # 你要使用的聊天模型名称 (例如 qwen-plus-latest) OPENAI_MODEL=qwen-plus-latest # 你要使用的文本嵌入模型名称 (例如 text-embedding-v1) OPENAI_EMBEDDING_MODEL=text-embedding-v1 ``` ## 课程目录 ### 第一课:模型 (Models) - AI 的大脑 - `lesson_1_chat_model.py`: 演示如何初始化一个聊天模型并与之进行最基本的交互。 ### 第二课:提示模板 (Prompt Templates) - 规范化指令 - `lesson_2_prompts.py`: 学习使用提示模板和 LCEL (`|`) 来动态地生成提示,构建第一个简单的链。 ### 第三课:输出解析器 (Output Parsers) - 理解 AI 的回答 - `lesson_3_parsers.py`: 演示如何使用 `StrOutputParser` 和 `JsonOutputParser` 将模型的文本输出转换为结构化的字符串或 JSON 对象。 - `lesson_3b_pydantic_parser.py`: (进阶) 学习使用 `PydanticOutputParser` 将模型输出直接转换为类型安全的 Python 自定义对象。 ### 第四课:记忆 (Memory) - 让 AI 拥有上下文 - `lesson_4_memory.py`: (已弃用) 使用经典的 `LLMChain` 和 `ConversationBufferMemory` 来实现对话记忆,用于理解基本概念。 - `lesson_4b_memory_lcel.py`: 使用现代的 `RunnableWithMessageHistory` 来实现一个可扩展的、按会话 ID 管理的对话记忆链。 - `lesson_4c_advanced_memory.py`: (进阶) 在 `RunnableWithMessageHistory` 基础上,通过自定义包装类实现"窗口记忆",防止上下文过长。 - `lesson_4e_summary_lcel.py`: (高级) 完全使用 LCEL,通过自定义 `ChatMessageHistory` 类和一个独立的"摘要链",从零开始构建一个健壮的、可定制的"摘要记忆"系统。 ### 第五课:检索 (Retrieval) - 连接外部知识 - `my_knowledge.txt`: 一个示例文档,作为我们 RAG 应用的外部知识库。 - `lesson_5_rag.py`: 构建一个完整的 RAG (检索增强生成) 链,让 AI 能够根据 `my_knowledge.txt` 的内容来回答问题。 ### 第六课:智能体 (Agents) - 赋予 AI 行动能力 - `lesson_6_agents.py`: 构建一个基于 ReAct 模式的 Agent,它能通过调用自定义的 Python 工具来完成计算任务,并展示了 Agent 的思考-行动-观察循环。 ## 如何运行 在终端中,使用 `python` 命令运行你想要学习的脚本文件,例如: ```