工具支持

2024年7月25日

ollama with a box of tools, ready to serve you

Ollama 现在支持使用 Llama 3.1 等流行模型进行工具调用。这使得模型能够利用其已知的工具来回答给定的提示,从而使模型能够执行更复杂的任务或与外部世界交互。

示例工具包括:

  • 函数和 API
  • 网页浏览
  • 代码解释器
  • 更多!

工具调用

要启用工具调用,请通过 Ollama API 的tools字段提供可用工具的列表。

import ollama

response = ollama.chat(
    model='llama3.1',
    messages=[{'role': 'user', 'content':
        'What is the weather in Toronto?'}],

		# provide a weather checking tool to the model
    tools=[{
      'type': 'function',
      'function': {
        'name': 'get_current_weather',
        'description': 'Get the current weather for a city',
        'parameters': {
          'type': 'object',
          'properties': {
            'city': {
              'type': 'string',
              'description': 'The name of the city',
            },
          },
          'required': ['city'],
        },
      },
    },
  ],
)

print(response['message']['tool_calls'])

支持的模型现在将使用tool_calls响应进行回复。工具响应可以通过带有tool角色的消息提供。更多信息请参见API 文档

支持的模型

支持的模型列表可以在模型页面上的“工具”类别中找到。

注意:请运行ollama pull <model>检查您是否拥有最新模型。

ollama.com tool models

OpenAI 兼容性

Ollama 的 OpenAI 兼容端点现在也支持工具,可以使用 Llama 3.1 和其他模型。

import openai

openai.base_url = "https://127.0.0.1:11434/v1"
openai.api_key = 'ollama'

response = openai.chat.completions.create(
	model="llama3.1",
	messages=messages,
	tools=tools,
)

完整示例

未来改进

  • 流式工具调用:流式返回工具调用,以便在返回多个工具时更快地开始采取行动。
  • 工具选择:强制模型使用特定工具。

让我们一起构建

我们非常高兴地为您带来工具支持,并期待看到您用它构建的内容!

如果您有任何反馈,请随时通过我们的Discord[email protected]告知我们。