工具支持

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] 告诉我们。