langChain 基础 01 - 模型

本文介绍 langchain 加载模型过程

Langchian 包含组件,先来看最基础的’model’组件如何使用,langchian 默认使用 openai,这里我们先安装 ollama,在本地使用 llm 模型

1
2
3
4
from langchain_ollama import ChatOllama
# 初始化Ollama LLM,注意需要后台开启ollama服务
model_name = "qwen2.5:latest"
model = ChatOllama(model=model_name,base_url='http://localhost:11434')

Langchain 提供统一标准的接口使用对话模型,一个简单的调用是向其传递 "消息数组"

1
2
3
from langchain_core.messages import HumanMessage
response=model.invoke([HumanMessage(content="你好,我是广州小五")])
print(response.content)

你好!很高兴认识你,广州的小五。有什么问题或需要帮助的吗?无论是旅行建议、美食推荐还是其他信息查询,都可以告诉我哦!

此时如果再次向模型提问 "我的名字",模型并不清楚

1
2
response=model.invoke([HumanMessage(content="我的名字是?")])
print(response.content)

您的名字我没有直接的信息来回答,但在我们的对话开始前,您没有提及具体的名字。如果您愿意告诉我您的名字,我很乐意认识您!在我们的对话记录中,默认情况下我是不会保存任何个人信息的。

如果把之前聊天纪录传递过去,模型可以正确回答问题

1
2
3
4
5
6
7
8
9
from langchain_core.messages import AIMessage
response=model.invoke(
[
HumanMessage(content="你好,我是广州小五"),
AIMessage(content="你好!很高兴认识你,广州的小五。有什么我可以帮助你的吗?无论是信息查询、学习资料需求还是其他问题,都欢迎你提问。"),
HumanMessage(content="我的名字是?"),
]
)
print(response.content)

你的名字是 “小五”。如果你有更多想要了解的问题或者需要帮助的事情,请随时告诉我!

Chat models | 🦜️🔗 LangChain 包含众多对话模型,可以直接使用