本地大模型编程实战(10)与外部工具交互(1)


某些模型能够进行工具方法调用:生成用户自定义的方法的签名并调用它。一般来说,此交互过程主要包含下面几个步骤:

  • LLM(大语言模型) 根据用户的问题推理生成调用工具方法的名称和参数
  • 调用工具,返回简单的结果
  • 再次调用 LLM ,生成自然流畅的回答

下面我们来说明这一过程。

应该是因为 langchiandeepseek 的支持还完善,使用 deepseek-r1 无法生成工具方法签名,使用 MFDoom/deepseek-r1-tool-calling:7b 可以生成工具方法签名,但是在调用工具方法时不成功。
所以本文仅使用 llama3.1

准备

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

  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大模型

定义工具方法

下面我们定义两个简单的工具方法,它可以做加法和乘法运算。

@tool
def add(a: int, b: int) -> int:
    """计算a和b的和。"""
    print (f"add is called...{
     a}+{
     b}")
    return a + b

@tool
def multiply(a: int, b: int) -> int:
    """计算a和b的乘积。"""
    print (f"multiply is called...{
     a}*{
     b}")
    return a * b

tools = [add
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值