Langchain从零开始到应用落地案例[AI智能助手]【1】---调用ollama模型实现简单循环会话
目录
前言
官网链接
安装
调用ollama模型实现普通会话
实现多轮会话
运行演示
完整的实例代码
结束语
前言
本系列将会记录我学习Langchain入门到实际应用落地实现。借助本地的ollama部署的模型结合Langchain的框架直至实现企业级应用的初版实现。
本系列将会借助ollama,如果没有的话可以移步到该链接文章进行学习:
AI智能体(Agent)大模型入门【4】--下载训练好的大模型部署到本地上_ollama本地部署大模型下载到本地-CSDN博客
官网链接
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 ChatOllamallm = 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 | llmwhile True:question = input("请输入问题:")response = chat_model.invoke(question)print(response.content)if question == "exit":break
结束语
到这里相信应该了解langchain的基本构建了,接下来就需要在这些方面去扩建构建,同时我也在学习,如果有错可以指出,或者有疑问我们一起探讨和查询相关问题