Skip to main content

Ollama

ollama 提供程序兼容 Ollama,可访问 Llama、Mixtral、Mistral 等模型。

您可以通过指定 Ollama 库 中的以下任一提供程序来使用其 /api/generate 端点:

  • ollama:completion:llama3:text
  • ollama:completion:llama2:text
  • ollama:completion:llama2-uncensored
  • ollama:completion:codellama
  • ollama:completion:orca-mini
  • ...

或者,使用 /api/chat 端点进行聊天格式的提示:

  • ollama:chat:llama3
  • ollama:chat:llama3:8b
  • ollama:chat:llama3:70b
  • ollama:chat:llama2
  • ollama:chat:llama2:7b
  • ollama:chat:llama2:13b
  • ollama:chat:llama2:70b
  • ollama:chat:mixtral:8x7b
  • ollama:chat:mixtral:8x22b
  • ...

我们还通过 ollama:embeddings:<模型名称> 支持 /api/embeddings 端点,用于模型评级的断言,例如 相似性

支持的环境变量:

  • OLLAMA_BASE_URL - 协议、主机名和端口(默认为 http://localhost:11434
  • OLLAMA_API_KEY - (可选)调用 API 时作为 Authorization Header 中的 Bearer 令牌传递的 API 密钥
  • REQUEST_TIMEOUT_MS - 请求超时时间(毫秒)

要向 Ollama 传递配置选项,请使用 config 键,如下所示:

providers:
- id: ollama:llama2
config:
num_predict: 1024

localhost 和 IPv4 与 IPv6

如果在本地开发时使用 localhost(promptfoo 的默认设置),并且 Ollama API 调用失败并显示 ECONNREFUSED,则可能是 localhost 的 IPv4 与 IPv6 问题。Ollama 的默认主机使用 127.0.0.1,这是一个 IPv4 地址。这里可能出现的问题是 localhost 绑定到 IPv6 地址,这是由操作系统的 hosts 文件配置的。要调查并解决此问题,有几种可能的解决方案:

  1. 通过在启动 Ollama 服务器之前运行 export OLLAMA_HOST=":11434" 将 Ollama 服务器更改为使用 IPv6 寻址。请注意,此 IPv6 支持需要 Ollama 版本 0.0.20 或更新版本。
  2. 通过配置 export OLLAMA_BASE_URL="http://127.0.0.1:11434" 将 promptfoo 更改为直接使用 IPv4 地址。
  3. 更新操作系统的 hosts 文件,将 localhost 绑定到 IPv4。

串行评估模型

默认情况下,promptfoo 会为每个提示并行评估所有提供程序。但是,您可以使用 -j 1 选项串行运行评估:

promptfoo eval -j 1

这将并发设置为 1,这意味着:

  1. 评估一次一个提供程序,然后一次一个提示。
  2. 只有一个模型加载到内存中,节省系统资源。
  3. 您可以在评估之间轻松交换模型而不会发生冲突。

这种方法特别适用于:

  • 内存有限的本地设置
  • 测试多个资源密集型模型
  • 调试特定于提供程序的问题