Chapter 11
Ollama 中的 Phi 系列
Ollama 中的 Phi 系列
Ollama 允许更多人通过简单脚本直接部署开源 LLM 或 SLM,并且还可以构建 API 来帮助本地 Copilot 应用场景。
1. 安装
Ollama 支持在 Windows、macOS 和 Linux 上运行。您可以通过此链接(https://ollama.com/download)安装 Ollama。安装成功后,您可以直接在终端窗口使用 Ollama 脚本来调用 Phi-3。您可以查看 Ollama 中的可用库。如果您在 Codespace 中打开此仓库,它将已预装 Ollama。
ollama run phi4[!NOTE] 模型在您首次运行时会先被下载。当然,您也可以直接指定已经下载的 Phi-4 模型。我们以 WSL 为例来运行该命令。模型成功下载后,您可以直接在终端进行交互。

2. 从 Ollama 调用 phi-4 API
如果您想调用由 ollama 生成的 Phi-4 API,您可以在终端使用此命令来启动 ollama 服务器。
ollama serve[!NOTE] 如果在 MacOS 或 Linux 上运行,请注意您可能会遇到以下错误 "Error: listen tcp 127.0.0.1:11434: bind: address already in use" 当调用该命令时您可能会收到此错误。您可以选择忽略该错误,因为它通常表示服务器已在运行,或者您可以停止并重启 Ollama:
macOS
brew services restart ollamaLinux
sudo systemctl stop ollamaOllama 支持两种 API:generate 和 chat。您可以根据需要调用 Ollama 提供的模型 API,向运行在本地端口 11434 的服务发送请求。
Chat
curl http://127.0.0.1:11434/api/chat -d '{
"model": "phi3",
"messages": [
{
"role": "system",
"content": "Your are a python developer."
},
{
"role": "user",
"content": "Help me generate a bubble algorithm"
}
],
"stream": false
}'这是在 Postman 中的结果

Additional Resources
在 Ollama 的库 中查看可用模型列表。
使用以下命令从 Ollama 服务器拉取您的模型
ollama pull phi4使用以下命令运行模型
ollama run phi4注意: 访问此链接 https://github.com/ollama/ollama/blob/main/docs/api.md 以了解更多
从 Python 调用 Ollama
您可以使用 requests 或 urllib3 向上面使用的本地服务器端点发起请求。不过,在 Python 中使用 Ollama 的流行方式是通过 openai SDK,因为 Ollama 也提供与 OpenAI 兼容的服务器端点。
下面是 phi3-mini 的示例:
import openai
client = openai.OpenAI(
base_url="http://localhost:11434/v1",
api_key="nokeyneeded",
)
response = client.chat.completions.create(
model="phi4",
temperature=0.7,
n=1,
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Write a haiku about a hungry cat"},
],
)
print("Response:")
print(response.choices[0].message.content)从 JavaScript 调用 Ollama
// 使用 Phi-4 对文件进行摘要的示例
script({
model: "ollama:phi4",
title: "Summarize with Phi-4",
system: ["system"],
})
// 摘要示例
const file = def("FILE", env.files)
$`Summarize ${file} in a single paragraph.`从 C# 调用 Ollama
创建一个新的 C# 控制台应用并添加以下 NuGet 包:
dotnet add package Microsoft.SemanticKernel --version 1.34.0然后将 Program.cs 文件中的代码替换为以下内容
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;
// add chat completion service using the local ollama server endpoint
#pragma warning disable SKEXP0001, SKEXP0003, SKEXP0010, SKEXP0011, SKEXP0050, SKEXP0052
builder.AddOpenAIChatCompletion(
modelId: "phi4",
endpoint: new Uri("http://localhost:11434/"),
apiKey: "non required");
// invoke a simple prompt to the chat service
string prompt = "Write a joke about kittens";
var response = await kernel.InvokePromptAsync(prompt);
Console.WriteLine(response.GetValue<string>());使用以下命令运行应用:
dotnet run免责声明: 本文件由 AI 翻译服务 Co-op Translator(https://github.com/Azure/co-op-translator)翻译。尽管我们力求准确,但请注意自动翻译可能包含错误或不准确之处。原始文档的原文应被视为权威来源。对于关键信息,建议采用专业人工翻译。对于因使用本翻译而产生的任何误解或错误解读,我们概不负责。
