目录
前言
本系列将会记录我学习Langchain入门到实际应用落地实现。借助本地的ollama部署的模型结合Langchain的框架直至实现企业级应用的初版实现。
本系列将会借助ollama,如果没有的话可以移步到该链接文章进行学习:
AI智能体(Agent)大模型入门【4】--下载训练好的大模型部署到本地上_ollama本地部署大模型下载到本地-优快云博客
官网链接
ollama官网:https://ollama.com/,部署本地模型,不花钱调用大模型
Langchain官方参考示例文档:https://docs.langchain.com/
安装
环境需求:python3.9+
注:一下环境最好开启网络代理来访问外网,防止出现无法下载和使用的情况
这里由于从零开始,将会教学如何输入控制台命令进行环境下载

关于指令都是在这个地方输入

安装langchain软件包
pip install langchain
安装支持langchian的环境包
pip install langchain-core
安装langchian支持ollama模型加载环境
pip install -U langchain-ollama
到这里基本的环境就安装完成了。
调用ollama模型实现普通会话
官方模型设置
from langchain_ollama import ChatOllama
llm = ChatOllama(
model="gpt-oss:20b", #这里填写你本地拥有的模型名称
validate_model_on_init=True,
temperature=0.8,
num_predict=256,
# other params ...
)
但是这里优化掉,优化为以下编写
llm = ChatOllama(
model="gpt-oss:20b", #填写为本地模型的名称
url="http://localhost:11434", #地址写这个
validate_model_on_init=True,
options={"thinking":False}, #关闭思考模式
temperature=0.8,
)
那么接下来就可以会话了
messages = [
(
"system",
"你是一个问答助手,用户和你进行对话,你需要根据用户的问题给出一个回答。",
),
("human", "你好,请问你能帮助我嘛"),
]
ai_msg = llm.invoke(messages)
print(ai_msg.content)
system设定模型角色,而human就是用户输入的问题
实现多轮会话
需要将message删除掉
重新编写promt编写,改成用户输入问题
prompt = ChatPromptTemplate.from_messages(
[
("system", "你是一个问答助手,用户和你进行对话,你需要根据用户问题给出一个回答。"),
("human", "{question}"),
]
)
然后再构建聊天模型
# 构建聊天模型
chat_model = prompt | llm
最后创建循环体,实现多轮会话操作
while True:
question = input("请输入问题:")
response = chat_model.invoke(question)
print(response.content)
if question == "exit":
break
到这里基本上也就构建完成了。
那么来看运行演示吧
运行演示



完整的实例代码
llm = ChatOllama(
model="gpt-oss:20b",
url="http://localhost:11434",
validate_model_on_init=True,
options={"thinking":False},
temperature=0.8,
)
prompt = ChatPromptTemplate.from_messages(
[
("system", "你是一个问答助手,用户和你进行对话,你需要根据用户问题给出一个回答。"),
("human", "{question}"),
]
)
# 构建聊天模型
chat_model = prompt | llm
while True:
question = input("请输入问题:")
response = chat_model.invoke(question)
print(response.content)
if question == "exit":
break
结束语
到这里相信应该了解langchain的基本构建了,接下来就需要在这些方面去扩建构建,同时我也在学习,如果有错可以指出,或者有疑问我们一起探讨和查询相关问题
2440

被折叠的 条评论
为什么被折叠?



