:LLM核心组件)
LLMLarge Language Model大语言模型最宽泛的概念指大型语言模型本身比如 GPT、Llama、Qwen 等。Chat Model聊天模型通常是经过指令微调、对话优化的 LLM专门适合多轮聊天。可以理解成Chat Model ⊂ LLM。Embedding Model嵌入模型用途不同。它通常不负责“生成回答”而是把文本转换成一串向量例如[0.12, -0.53, ...]方便做语义搜索、相似度比较、RAG、聚类、推荐等。LangChain六大核心核心组件和交互关系组件职责常见类/接口Models模型与LLM、Chat Model、Embedding模型交互的统一抽象层LLM、ChatModel、EmbeddingPrompts提示词管理和模板化输入模型的文本PromptTemplate、ChatPromptTemplate、FewShotchains链把多个组件按固定顺序编排成流水线LLMChain、LCEL表达式a | b | cMemory记忆在多轮对话中保存和读取上下文ConversationBufferMemory、SummaryMemoryIndexes/Retrievers索引/检索对接外部信息为模型提供私有知识RAGLoader、TextSplitter、VectorStore、RetrieverAgents智能体让大模型自动决策下一步调用工具AgentTool、AgentExecutorOutput Parser输出解析器——把模型输出对象解析为JSON/Pydantic对象常和prompt一起考。面试例题【例 1 · 概念题】Chain和Agent的区别是什么各自适合什么样的场景答Chain是预先写好的编程流水线适合场景固定、流程固定、可预测的任务。“比如提取文本内容翻译为中文。”Agent适合于流程不固定需要模型自主思考决策接下来该怎么调用工具适合路径不确定、需要多步思考的任务如查航班对比价格选择最便宜的。【例 2 · 流程题】描述用LangChain实现“基于公司PDF手册实现智能问答机器人”的流程并说明用到了哪些部分。答1.用Index的DocumentLoader加载PDF2.TextSplitter切完为chunk解决上下文窗口和检索颗粒度问题3.Models中的Embedding模型将chunk向量化存入VectorStore4.用户提问时Retriever检索Top-K相关chunk5.检索结果Memory中的对话历史存入Prompts模板6.交给ChatModel生成答案——整条流水线用ChainLCEL编排。【例 3 · 代码题】下面这段代码做了什么promptChatPromptTemplate.from_template(把{topic}讲给5岁小孩听) chainprompt | model | StrOutputParser()答定义了一个LCEL链{topic}是模板变量prompt是渲染提示词管道符 | 将渲染结果传给ChatModelStrOutputParser把模型返回对象解析为纯字符串。调用chain.invoke({topic:黑洞})即可执行。【例 4】六大组件中负责把“LLM的自由文本转换成JSON”的是哪类辅助组件。答Output Parser输出解析器常与Prompt搭配使用提示词里面注入格式说明解析器负责校验和转换【例 5】RAG 中为什么要对文档做切分Split切太大或太小各有什么问题答因为模型上下文窗口有限而且检索需要合适的颗粒度。切太大检测噪声太大、浪费Token、可能超过窗口容量切太小语义不完整答案缺乏上下文。实际中切分保留一定重叠。【例6】写出 ReAct 的一次完整循环的四个环节。答Thought模型思考下一步- Action(选择并且调用工具) - Observation(接受工具返回结果) -判断是否继续执行循环若信息足够返回输出的 Final Answer。【例7】Memory组件让LLM产生“记住”的能力。答不对LLM本身无状态Memory的作用是把历史对话重新塞回每一轮的Prompt中模型只是看到了上下文并非是模型本身有记忆。【例8】场景设置面试官让你设置一个“自动查资料并写资料的Agent”答核心是AgentLLM自己决定要检索哪些材料资料库接入Indexes/Retriever(RAG内部检索文档)Tools分装搜索API、日历API等等写作时用PromptTemplate约束周报格式Output Parser输出结构化JSONMemory记住以上内容以便对比整个流程外层可用Chain/LCEL做骨架编排。LangChain核心包发展历史2022 年 10 月 24 日LangChain 发布 v0.0.1 版本早于 ChatGPT 正式发布约 1 个月最初仅为单一 Python 包LangChain早期所有功能、第三方集成全部耦合在一个包中依赖膨胀、版本管理困难不适合生产环境。2023 年 12 月官方宣布架构拆分2024 年 1 月正式发布 v0.1.0将原单一LangChain包拆分为三个核心包是史上最重要的架构调整LangChainLangChain-core、LangChain-community已经停止维护、LangChain主包。之后经过多个时期langchain主包不再依赖LangChain-community改为LangChain-community已经停止维护依赖LangChain和LangChain-core主包彻底和第三方集成解耦。社区水平参差不齐频繁出现版本兼容问题2024 年 9 月内部全面升级到 Pydantic 2同时启动「集成拆包计划」把高频第三方集成从LangChian-community中拆分为独立的langchain-{厂商名}包如langchain-openai、langchain-chromalangchain-community仅保留存量兼容实现LangChain。2025 年 10 月 20 日发布 v1.0 正式版是第二个里程碑式架构升级核心范式从「Chain 线性流程」转向「Agent 状态机」——————————————————————————-——————————————LangChain经过多次迭代有些部分已经跟不上时代逐渐被淘汰目前只需要掌握下面的几个包1、LangChain主包2、LangChain-core3、Langgraph4、你业务对应的独立集成包如LangChain-openai