程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

【LangChain + Python 开发语言模型 LLM 教程】四、实现互动机器人

hfteth 2025-01-20 13:15:38 技术文章 20 ℃

喜欢的条友记得点赞、关注、转发、收藏,你们的支持就是我最大的动力源泉。

安装 LangChain 和 Ollama + Qwen2 看前期教程:

【手把手包会】Python + Ollama + Qwen2 实现本地大语言模型简单调用

本期课程,我将带大家通过一个示例来说明如何设计和实现 LLM 的聊天机器人。并且这个聊天机器人将能够记住以前的对话。

我们首先直接使用模型。ChatModel是 LangChain “Runnables” 的实例,这意味着它们公开了一个用于与它们交互的标准接口。要简单地调用模型,我们可以将消息列表传递给 .invoke 方法。

from langchain_community.llms import Ollama

model = Ollama(
    model="qwen2",
)

from langchain_core.messages import HumanMessage

print(model.invoke([HumanMessage(content="你好,我是小冯。")]))
print("-"*50)
print(model.invoke([HumanMessage(content="你好,我是谁?")]))

运行结果如下:

该模型本身没有任何状态的概念。例如,您提出后续问题,我们可以看到,它没有将之前的对话转化为上下文,也无法回答问题。这会导致糟糕的聊天机器人体验!

为了解决这个问题,我们需要将整个对话历史传递到模型中。让我们看看当我们这样做时会发生什么:

from langchain_community.llms import Ollama

model = Ollama(
    model="qwen2",
)

from langchain_core.messages import HumanMessage
from langchain_core.messages import AIMessage

print(
model.invoke(
    [
        HumanMessage(content="你好,我是小冯。"),
        AIMessage(content="你好,小冯! 今天有什么我能帮忙的吗?"),
        HumanMessage(content="你好,我是谁?"),
    ]
)
)

运行结果如下:

结果发生了变化,准确的回答了我的问题[可爱]。

最近发表
标签列表