96SEO 2026-09-15 07:20 30
LangChain 是一个将「模型」「提示词」「数据」「记忆」「工具」等组件像搭积木一样串联成可复用工作流的开源框架。主要思想是 组件化 + 链式调用每个模块职责单一、接口标准,既能快速原型。也便于生产级
痛点:API key 管理与版本变更导致频繁报错。建议使用 .env 文件统一管理,并结合实际环境验证使用。

from langchain_community.llms.tongyi import Tongyi
model = Tongyi
# 非流式输出
res = model.invoke
# 流式输出
res = model.stream
for chunk in res:
print
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_core.messages import HumanMessage。AIMessage,SystemMessage
messages =
res = ChatTongyi.stream # 一样需要循环处理
痛点:消息对象类型混乱导致链式调用报错;记得使用正确的 message 类或元组简写。
PromptTemplate 用于建立可注入变量的提示词,必须通过 .invoke 与 Chain 集成。⚠️ 注意:.format 只做字符串替换,不能直接进入 Chain;使用时请务必采用 .invoke.
from langchain_core.prompts import PromptTemplate
prompt_template = PromptTemplate.from_template(
"我的邻居姓{lastname},刚生了{gender},请帮我起一个名字"
)
# 调用 Chain 时必须传 dict
chain = prompt_template | model | StrOutputParser
result = chain.invoke
print
example_template = PromptTemplate.from_template
example_data =
few_shot = FewShotPromptTemplate(
example_prompt=example_template,examples=example_data,prefix="告知我单词的反义词,我提供以下示例","。input_variables=
)
from langchain_core.prompts import ChatPromptTemplate,MessagesPlaceholder
chat_template = ChatPromptTemplate.from_messages()
def get_history:
return InMemoryChatMessageHistory # 简化示例
base_chain = chat_template | model | StrOutputParser
chain_with_memory = RunnableWithMessageHistory(
base_chain,get_history,input_messages_key='input',history_messages_key='chat_history'
)
response = chain_with_memory.invoke
print
痛点:多轮对话中记忆丢失、内存溢出或文件方法错误;建议使用持久化方案 FileChatMessageHistory 并检查文件权限。说起来,
parser_sop = StrOutputParser
parser_jop = JsonOutputParser
# 示例链路:
f_prompt | model | parser_jop | s_prompt | model | parser_sop
# 若想避免改动 prompt。可用 RunnableLambda:
my_func = RunnableLambda
f_prompt | model | my_func | s_prompt | model | parser_sop
痛点:JSON 输出解析失败时常见“不是字典”错误;确保 prompt 输出包含 key-value 对应格式即可。话说回来,
vectorstore = Chroma( collectionname='test',embeddingfunction=DashScopeEmbeddings)。persistdirectory='./data' )
documents= vectorstore.adddocuments
docsvectorstore.similaritysearch
retriever=vectorstore.asretriever retrievalchain=retriever|prompt|model|StrOutputParser response=retrievalchain.invoke print
⚠️ 注意:直接把 retriever 放到 Chain 中会导致 prompt 无法识别 Document 列表,需要通过 RunnablePassthrough 或自定义函数进行格式化!.
- 用来让向量库符合 Runnable 接口,从而可以在 Chain 中串联。
retriever=vectorstore.asretriever
``
如需在同一次请求中同时查询检索结果和保留使用者原问,可以这样写:
chain=。"context":retriever|format_func}
| prompt
| print_prompt
| model
| StrOutputParser)
⚠️ 常见错误:“tuple object has no attribute 'type'”,通常是因为 add_message 接收的是 tuple 而非 BaseMessage 导致的,请改用 BaseMessage 或相应类实例化。.
短期记忆 — 内存临时保存,仅程序运行期间有效。
长期记忆— 持久化到文件,每个 session_id 对应一个文件夹。
``
❗️ 如果出现 “Error in RootListenersTracer.on_chain_end callback”。很可能是 add_message 接收类型不匹配导致的,请检查实现是否符合 BaseMessage 接口。.
CSVLoader – 自动识别分隔符、字段名,可自定义 csv_args。JSONLoader – 支持 jq_schema。text_content,json_lines;小心字段类型不匹配导致报错。PyPDFLoader – 快速读取 PDF 页面或单页内容,需要 pypdf 库。TextLoader – 基础文本加载,但不会自动切分大文本;建议配合 RecursiveCharacterTextSplitter 分段处理。
python
loader=TextLoader
splitter=RecursiveCharacterTextSplitter
docs=loader.load;split_docs=splitter.split_documents
💡 小贴士:Windows 默认编码是 gbk,若出现乱码请显式设置 encoding 为 utf‑8 或开启 autodetect_encoding。.
先把各模块拆解出来——模型、提示模板、解析器、检索器、内存等》每一步都明确输入/输出类型。
**痛点**的观点是,参数变化快,版本不兼容导致 “TypeError” 等错误。建议实时查看官方文档并加上 try/except 捕获异常以便定位。
建立链条时始终遵循 “前一步输出 → 后一步输入” 的规则,并通过RunnableSequence自动完成链接。
再看**痛点**,未将 Retriever 包装为 runnable 或忘记使用.as_retriever就会出现 “Cannot parse list into prompt”。
若需要同时保留使用者提问和检索结果。请引入RunnablePassthrough或自定义函数映射字典,以防信息丢失。其实,
记忆管理要根据业务需求选择短期还是长期。并注意文件权限与方法正确性,否则会抛出 FileNotFoundError 或 PermissionError。
向量数据库的 CRUD 操作本质上是追加写入。没有修改功能,只能删除后再增,以保持最终一致性。
希望这份重排后的笔记能方便你搭建自己的 LangChain RAG 框架,而且在遇到常见痛点时能够迅速定位解决!祝编码愉快 🚀✨
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback