来源:互联网 更新时间:2026-06-05 12:51
要把通义千问这样的大模型接入业务系统,光有API权限还不够,关键还在于如何把它“装进”一个可维护、可扩展的应用框架里。LangChain就是干这个的——它提供了一套标准化的封装和编排工具,让开发者能像搭积木一样,把模型能力、记忆机制、知识检索和工具调用组合起来。下面直接拆解五个核心步骤,从环境搭建到流式响应,一步步讲清楚。
LangChain本身不提供模型服务,它只是一个调度层。所以第一步,得先把通义千问的访问凭证配置好,同时安装对应的社区集成模块。这两件事缺一不可,否则不是初始化报错就是401认证失败。
核心依赖安装命令:
pip install langchain langchain-community dashscope
接着去阿里云百炼控制台的「API密钥管理」里创建新密钥,把那个字符串复制下来。生产环境推荐用环境变量配置:
export DASHSCOPE_API_KEY="sk-xxx"
配置完可以用一段简单的Python脚本验证:llm.invoke("测试"),能返回非空字符串就算搞定。
LangChain把通义千问封装成了两类接口。一个是面向单轮文本生成的
文本生成模型初始化:
from langchain_community.llms import Tongyi
llm = Tongyi(dashscope_api_key=os.getenv("DASHSCOPE_API_KEY"), model="qwen-max")
聊天模型初始化:
from langchain_community.chat_models.tongyi import ChatTongyi
from langchain_core.messages import HumanMessage, SystemMessage
chat_model = ChatTongyi(model="qwen3-turbo", temperature=0.5)
这里有个容易踩的坑:
默认情况下,每次调用模型都是独立的,模型没有“记忆”。要实现“用户先问旗舰产品是什么,接着问它有什么优势时能自动理解指代”,就必须引入Memory模块来持久化对话上下文。在多种内存策略里,
初始化内存组件:
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
然后构造带记忆的链:
from langchain.chains import LLMChain
from langchain.prompts import ChatPromptTemplate
prompt = ChatPromptTemplate.from_messages([
("system", "你是一家科技公司的AI助手,请用中文专业回答。"),
("human", "{input}")
])
chain = LLMChain(llm=chat_model, prompt=prompt, memory=memory)
执行连续问答时,模型就能准确衔接前后文了:
chain.invoke({"input": "我们的旗舰产品是什么?"})
chain.invoke({"input": "它有什么优势?"})
必须记住的一点:
当用户提问超出预设提示词范围时,需要从企业文档库中检索相关片段作为上下文。LangChain通过Embeddings + VectorStore双模块实现,而通义千问的text-embedding-v3向量模型可以直接替代OpenAIEmbeddings。
初始化向量模型:
from langchain_community.embeddings import DashScopeEmbeddings
embeddings = DashScopeEmbeddings(model="text-embedding-v3")
加载本地PDF并切分文本:
from langchain_community.document_loaders import PyPDFLoader
loader = PyPDFLoader("product_manual.pdf")
docs = loader.load_and_split()
构建向量索引:
from langchain_community.vectorstores import FAISS
vectorstore = FAISS.from_documents(docs, embeddings)
绑定检索器后形成问答链:
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})
from langchain.chains import RetrievalQA
qa_chain = RetrievalQA.from_chain_type(llm=llm, retriever=retriever)
这里有个中文分词的兼容问题:
面向终端用户的AI应用,流式输出几乎是标配——打字机效果能大幅提升交互体验。同时,完整记录调用链对问题回溯也很关键。LangChain原生支持stream方法,并通过LangSmith自动捕获所有中间步骤。
流式输出(仅限ChatTongyi):
messages = [HumanMessage(content="请解释Transformer架构")]
for chunk in chat_model.stream(messages):
print(chunk.content, end="", flush=True)
开启LangSmith追踪:
import os
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_ENDPOINT"] = "https://api.smith.langchain.com"
os.environ["LANGCHAIN_API_KEY"] = "lsk-xxx"
os.environ["LANGCHAIN_PROJECT"] = "qwen-production"
最后再提醒一下:
《Off Campus》第二季官宣:这对CP还在,但不再是主角
和平精英如何做到压枪稳-和平精英怎样才能压枪稳
客单价碾压宝马奥迪!极氪5月交付新车34377辆:连续4个月双增长
免费影视剧APP推荐
HBO 奇幻剧《龙之家族》第三季定档 6 月 22 日,最终预告片曝光喉道海战
儿子穿新中式现身大会堂 马斯克罕见用中文回应:他正在学习普通话
DOTA2 TI时隔七年重返上海!门票6月10日开抢,国服享受优先购买!
帅气继父网名女生可爱英文(精选100个)
网络热词聊污是什么意思
抖音最火沙雕男生网名(精选100个)
蒙古上单是什么梗
金铲铲之战s17六暗星卡莎阵容玩法构筑指南
韦一敏是什么梗
SpaceX狂揽AI人才,马斯克亲自面试且不看简历背景
作家助手如何上传自制封面 作家助手如何设置小说的封面
免费看片软件下载地址推荐
免费看电影的软件推荐
阿里发布Qwen3.7-Max大模型,全球第五、国产第一
有寓意的易经网名男生(精选100个)
三角洲行动卡战备怎么弄 三角洲行动卡战备攻略
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc