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
文件配置的。要调查并解决此问题,有几种可能的解决方案:
- 通过在启动 Ollama 服务器之前运行
export OLLAMA_HOST=":11434"
将 Ollama 服务器更改为使用 IPv6 寻址。请注意,此 IPv6 支持需要 Ollama 版本0.0.20
或更新版本。 - 通过配置
export OLLAMA_BASE_URL="http://127.0.0.1:11434"
将 promptfoo 更改为直接使用 IPv4 地址。 - 更新操作系统的
hosts
文件,将localhost
绑定到 IPv4。
串行评估模型
默认情况下,promptfoo 会为每个提示并行评估所有提供程序。但是,您可以使用 -j 1
选项串行运行评估:
promptfoo eval -j 1
这将并发设置为 1,这意味着:
- 评估一次一个提供程序,然后一次一个提示。
- 只有一个模型加载到内存中,节省系统资源。
- 您可以在评估之间轻松交换模型而不会发生冲突。
这种方法特别适用于:
- 内存有限的本地设置
- 测试多个资源密集型模型
- 调试特定于提供程序的问题