这是一组 LangChain 学习 demo,目标是把从“提示词”到“RAG、Agent、Callback、Runnable 进阶”的常见能力串起来。
LCEL:LangChain Expression Language,用|把 prompt、model、parser、tool 串成管道。Prompt Template:把固定提示词和变量拆开,方便复用和维护。Memory:保存对话上下文,让模型记住前文。Output Parser:把模型输出转成结构化数据,比如 JSON、Pydantic 对象、列表。RAG Ingest:把文档读取、切块、做 embedding、存入向量库。RAG Chain:先检索文档,再让模型基于文档回答。Tools / Agent:让模型能调用工具,必要时执行函数或查询外部信息。Callback:观察链路执行过程,记录开始、结束、流式 token 和错误。Runnable进阶:演示透传、并行、分支、后处理等更灵活的管道组合。
demo01_lcel_basics.py:讲prompt | llm | parser这种最基础的 LCEL 管道。demo02_prompt_template.py:讲如何把提示词模板化,复用变量和消息历史。demo03_memory.py:讲如何保存和压缩对话记忆,避免上下文丢失。demo04_output_parser.py:讲如何把模型输出稳定地解析成 JSON、Pydantic 和列表。demo05_rag_ingest.py:讲如何把文档入库到 Chroma,形成可检索的知识向量。demo06_rag_chain.py:讲如何把检索到的文档喂回模型,完成 RAG 问答。demo07_tools_agent.py:讲如何让 Agent 根据问题选择并调用工具。demo08_callbacks.py:讲如何观察链路运行过程,以及普通调用和流式调用的区别。demo09_runnable_advanced.py:讲 Runnable 的透传、并行、分支和后处理能力。demo10_api_service.py:讲如何用 FastAPI + Uvicorn 把 LangChain 链路封装成可调用 API(普通 + 流式)。
uv pip install -r requirements.txt如果你用的是本地 Ollama embedding:
ollama pull qwen3-embedding:0.6b
ollama serverequirements.txt:Python 依赖清单。pyproject.toml:项目元数据和依赖配置。.gitignore:在仓库根目录/Users/kunyashaw/lobsterai/project/.gitignore,用来忽略虚拟环境、缓存、.env和生成的数据。
直接运行任意 demo 文件即可,例如:
./.venv/bin/python demo05_rag_ingest.py如果新增了依赖,请同步更新:
requirements.txtpyproject.toml