screwdriver-wrench本地 LLM 工具调用指南

工具调用是当大型语言模型被允许通过发出结构化请求来触发特定函数(例如“搜索我的文件”、“运行计算器”或“调用 API”),而不是用文本猜测答案。您使用工具调用是因为它们使输出 更可靠且更为最新,并且它们让模型 采取真实操作 (查询系统、验证事实、执行模式)而不是产生幻觉。

在本教程中,您将学习如何通过工具调用使用本地大型语言模型,包含数学、故事、Python 代码和终端函数示例。推理在本地通过 llama.cpp、llama-server 和 OpenAI 端点完成。

我们的指南应适用于几乎所有 任何模型 包括:

Qwen3-Coder-Next 教程GLM-4.7-Flash 教程

🔨工具调用设置

我们的第一步是获取最新的 llama.cpp此处的 GitHubarrow-up-right。您也可以按照下面的构建说明进行。若 -DGGML_CUDA=ON 更改为 -DGGML_CUDA=OFF 如果您没有 GPU 或仅想要在 CPU 上进行推理。 对于 Apple Mac / Metal 设备,设置 -DGGML_CUDA=OFF 然后照常继续 - Metal 支持默认启用。

apt-get update
apt-get install pciutils build-essential cmake curl libcurl4-openssl-dev -y
git clone https://github.com/ggml-org/llama.cpp
cmake llama.cpp -B llama.cpp/build \
    -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON
cmake --build llama.cpp/build --config Release -j --clean-first --target llama-cli llama-mtmd-cli llama-server llama-gguf-split
cp llama.cpp/build/bin/llama-* llama.cpp

在一个新终端(如果使用 tmux,使用 CTRL+B+D),我们创建一些工具,比如将两个数字相加、执行 Python 代码、执行 Linux 函数等等:

"required": ["code"],

circle-info

在此示例中我们使用的是 Devstral 2,切换模型时,请确保使用正确的采样参数。您可以在我们的 指南中查看它们.

现在我们将展示多种方法在下面针对许多不同用例运行工具调用:

写故事:

数学运算:

执行生成的 Python 代码

执行任意终端函数

🌠 Qwen3-Coder-Next 工具调用

在一个新终端,我们创建一些工具,比如将两个数字相加、执行 Python 代码、执行 Linux 函数等等:

然后我们使用以下函数,它们将自动解析函数调用并为任何大型语言模型调用 OpenAI 端点:

现在我们将展示多种方法在下面针对许多不同用例运行工具调用:

执行生成的 Python 代码

执行任意终端函数

我们确认文件已创建,确实如此!

GLM-4.7-Flash + GLM 4.7 调用

我们首先下载 GLM-4.7GLM-4.7-Flash 通过一些 Python 代码,然后在单独的终端(例如使用 tmux)通过 llama-server 启动它。在此示例中我们下载大型 GLM-4.7 模型:

如果您成功运行,您应该会看到:

现在在一个新终端通过 llama-server 启动它。若需要可使用 tmux:

您将会得到:

现在在一个新终端并执行 Python 代码,提醒运行 Tool Calling Guide 我们使用 GLM 4.7 的最佳参数:temperature = 0.7 和 top_p = 1.0

以获取更多详细信息,我们随后可以进行一些工具调用:

unsloth_inference(messages, temperature = 0.7, top_p = 1.0, top_k = -1, min_p = 0.00)

📙 Devstral 2 工具调用

我们首先下载 Devstral 2 通过一些 Python 代码,然后在单独的终端(例如使用 tmux)通过 llama-server 启动它:

如果您成功运行,您应该会看到:

现在在一个新终端通过 llama-server 启动它。若需要可使用 tmux:

如果成功,您将看到如下:

然后我们使用以下消息调用模型,并仅使用 Devstral 建议的参数 temperature = 0.15。提醒运行 Tool Calling Guide

最后更新于

这有帮助吗?