本地大模型编程实战(07)自制聊天机器人(1)


本文将演示使用大语言模型自制聊天机器人。主要的内容有:

  • 如何让机器人具有记忆
  • 如何使用 langgraph 自动记录聊天历史

我们将同时使用 llama3.1deepseek 做演示。由于 langchain 可能对不同大模型支持程度不同,不同大模型的特点也不同,所以这个对比并不能说明哪个模型更好。

准备

在正式开始撸代码之前,需要准备一下编程环境。

  1. 计算机
    本文涉及的所有代码可以在没有显存的环境中执行。 我使用的机器配置为:

    • CPU: Intel i5-8400 2.80GHz
    • 内存: 16GB
  2. Visual Studio Code 和 venv
    这是很受欢迎的开发工具,相关文章的代码可以在 Visual Studio Code 中开发和调试。 我们用 pythonvenv 创建虚拟环境, 详见:
    在Visual Studio Code中配置venv

  3. Ollama
    Ollama 平台上部署本地大模型非常方便,基于此平台,我们可以让 langchain 使用 llama3.1qwen2.5 等各种本地大模型。详见:
    在langchian中使用本地部署的llama3.1大模型

通过历史记录了解上下文

大模型本身不具备记忆功能,通常我们在调用大模型时,将聊天历史也喂给大模型,这样大模型就可以理解上下文,而产生记忆能力。
ChatModel (例如:ChatOllama) 是 LangChain“Runnable” 的实例,这意味着它们公开了一个用于与其交互的标准接口。比如 .invoke 方法。
下面我们做一下测试:

def chat(model_name):
    model = ChatOllama(model=model_name,temperature=0.3,verbose=True)
    response = model.invoke([HumanMessage(content="Hi! I'm Bob")])
    print(f'chat_with_no_memory:\n{
     response.content}')

    # We can see that it doesn't take the previous conversation turn into context, and cannot answer the question. This makes for a terrible chatbot experience!
    response = model.invoke([HumanMessage(content="What's my name?")])
    print(f'chat_with_no_memory 2:\n{
     response.content}')

def chat_with_memory(model_name):
    '''具有记忆功能'''
    model = ChatOllama
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值