# llm learn **Repository Path**: zero921123/llm-learn ## Basic Information - **Project Name**: llm learn - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-06 - **Last Updated**: 2026-06-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LangChain Python Learning Project 一个面向初学者的 `LangChain + Python` 学习项目,默认使用 `DeepSeek` 的 OpenAI 兼容接口。 这个仓库的目标很直接: - 用尽量小的示例理解 LangChain 核心概念 - 用一个综合 demo 把零散知识串起来 - 保持代码结构清晰,方便你一边运行一边阅读 ## 学习路径 这个项目采用“两条线并行”的方式学习: - `lessons/`:按知识点拆开的最小示例,适合逐个理解 - `projects/`:把多个能力组合起来的综合 demo,适合建立整体感 ## 你会学到什么 - `PromptTemplate` 和 `ChatPromptTemplate` - 如何连接聊天模型 - 如何把 prompt、model、parser 串成链 - 如何做简单的结构化输出 - 如何维护一段基础会话上下文 ## 项目结构 ```text learn_langchain/ ├── lessons/ # 分章节示例 ├── projects/ # 综合 demo ├── src/learn_langchain/ # 公共代码 ├── tests/ # 本地可重复测试 └── docs/superpowers/ # 设计与计划文档 ``` ## 环境要求 - Python `3.11+` - 一个可用的 `DeepSeek API Key` ## 快速开始 ### 1. 创建虚拟环境 ```bash python3 -m venv .venv source .venv/bin/activate ``` ### 2. 安装依赖 ```bash pip install -e . ``` ### 3. 配置环境变量 ```bash cp .env.example .env ``` 然后把 `.env` 里的 `DEEPSEEK_API_KEY` 改成你的真实 key。 默认配置如下: ```env DEEPSEEK_BASE_URL=https://api.deepseek.com DEEPSEEK_MODEL=deepseek-chat DEEPSEEK_TEMPERATURE=0.2 ``` ## 运行学习示例 ### Lesson 1: Prompt 模板 学习重点:理解模板变量如何变成模型输入消息 ```bash python lessons/01_prompt_template.py ``` ### Lesson 2: 直接调用模型 学习重点:理解 LangChain 如何连接真实聊天模型 ```bash python lessons/02_chat_model.py ``` ### Lesson 3: Prompt + Model + Parser 学习重点:理解最小 `chain` 是怎样串起来的 ```bash python lessons/03_prompt_chain.py ``` ### Lesson 4: 结构化输出 学习重点:理解输出解析器如何把模型结果转成更稳定的数据结构 ```bash python lessons/04_output_parser.py ``` ### Lesson 5: 简单会话记忆 学习重点:理解历史消息如何影响下一轮回答 ```bash python lessons/05_chat_memory.py ``` ## 运行综合 Demo 这个 demo 会把“学习目标 + 当前问题 + 历史上下文”组织成一次完整问答流程。 ```bash python projects/study_assistant_cli.py --goal "学习 LangChain 基础" --question "PromptTemplate 是干什么的?" ``` 带追问的示例: ```bash python projects/study_assistant_cli.py --goal "学习 LangChain 基础" --question "PromptTemplate 是干什么的?" --follow-up "那我第一周应该怎么练?" ``` ## 运行测试 ```bash python -m unittest discover -s tests -v ``` ## 学习建议 推荐顺序: 1. 先跑 `01` 和 `02`,理解 prompt 和 model 的边界。 2. 再跑 `03` 和 `04`,理解 LangChain 的组合方式。 3. 最后看 `05` 和 `projects/study_assistant_cli.py`,理解如何把基础能力拼起来。 ## 仓库说明 - [CHANGELOG.md](/Users/zero/CodingWorkSpace/LLM_Learn/learn_langchain/CHANGELOG.md):版本变更记录 - [pyproject.toml](/Users/zero/CodingWorkSpace/LLM_Learn/learn_langchain/pyproject.toml):项目依赖定义 - [src/learn_langchain](/Users/zero/CodingWorkSpace/LLM_Learn/learn_langchain/src/learn_langchain):公共配置和模型工厂 - [tests](/Users/zero/CodingWorkSpace/LLM_Learn/learn_langchain/tests):本地可重复验证的测试