Ollama 模型交互的三种方式说明

作者:袖梨 2026-08-03

与 Ollama 模型交互是使用大语言模型(LLM)进行对话、生成文本或执行任务的核心功能。Ollama 提供两种主要交互方式:通过命令行界面(CLI)的交互式终端和通过 REST API 的程序化调用。以下是详细说明,包括操作步骤、示例和注意事项。

Ollama 模型交互的三种方式介绍

1. 交互方式

方式 1:CLI 交互式终端

描述:通过 ollama run 命令启动模型,进入交互式终端,直接输入提示(prompt)与模型对话。

适用场景:快速测试、调试模型、个人使用。

步骤

确保已拉取模型(参考 ollama pull )。

运行命令:

ollama run 

示例:

ollama run llama3

进入交互模式,输入提示后按回车,模型会实时响应。

退出:输入 /exit 或按 Ctrl+D

示例对话

>>> What's the capital of France?The capital of France is Paris.>>> Write a haiku about the moon.Lunar whispers sing,In night's embrace, shadows dance,Soft dreams take wing.

高级用法

多轮对话:连续输入,模型会记住上下文(有限窗口,约 8k token)。

系统提示:在 Modelfile 中设置角色(如 SYSTEM "You are a pirate"),影响模型语气。

快捷命令/help 查看可用命令,如 /multiline 启用多行输入。

方式 2:API 交互

Ollama启动后,默认会在本地 http://localhost:11434 地址上提供一个RESTful API,让你可以通过HTTP请求来调用模型。这对于将AI能力集成到你的应用中至关重要。

核心API端点:

生成补全 (/api/generate):用于一次性的文本生成任务。

多轮聊天 (/api/chat):用于构建需要记忆上下文的对话应用。

常用编程语言调用示例:

Python:使用 requests 库调用生成接口。

import requestsimport jsonresponse = requests.post("http://localhost:11434/api/generate",    json={        "model": "llama3.2",        "prompt": "天空为什么是蓝色的?",        "stream": False # 设置为True可启用流式输出    })print(json.loads(response.text)["response"])

JavaScript:使用官方的 ollama npm 包,可以让交互更简洁。

import ollama from 'ollama'const response = await ollama.chat({    model: 'llama3.1',    messages: [{ role: 'user', content: '天空为什么是蓝色的?' }],})console.log(response.message.content)

流式输出也是支持的,只需将 stream 参数设为 true,即可实现打字机效果。

补充

描述:通过 HTTP API 调用模型,适合集成到应用程序、脚本或 Web 项目。

适用场景:自动化任务、开发 AI 应用、批量处理。

前提:启动 Ollama 服务器:

ollama serve

默认监听 http://localhost:11434

主要 API 端点生成文本/api/generate(单次生成,非对话)。

curl http://localhost:11434/api/generate -d '{  "model": "llama3",  "prompt": "Write a short story about a robot."}'

响应(JSON,流式输出):

{"response": "In a quiet factory, a robot named Elara..."}

对话模式/api/chat(支持多轮对话,类似 ChatGPT)。

curl http://localhost:11434/api/chat -d '{  "model": "llama3",  "messages": [    {"role": "user", "content": "Tell me a joke."}  ]}'

响应:

{"message": {"role": "assistant", "content": "Why did the robot go to therapy? It had an identity crisis!"}}

嵌入生成/api/embeddings(将文本转为向量,适用于搜索或分类)。

curl http://localhost:11434/api/embeddings -d '{  "model": "llama3",  "prompt": "Hello, world!"}'

编程示例(Python)

import requests# 单次生成response = requests.post('http://localhost:11434/api/generate', json={    "model": "llama3",    "prompt": "Explain quantum physics briefly."}, stream=True)for line in response.iter_lines():    if line:        print(line.decode('utf-8'))# 对话模式response = requests.post('http://localhost:11434/api/chat', json={    "model": "llama3",    "messages": [{"role": "user", "content": "What's 2+2?"}]})print(response.json()['message']['content'])

方式三:使用图形化界面

如果你不习惯命令行,Ollama社区提供了许多优秀的图形化界面。你可以把它们看作是为Ollama量身定制的“聊天客户端”。例如,通过Python安装 ollama-chat

pip install ollama-chatollama-chat

运行后,它会在浏览器中打开一个类似ChatGPT的界面。这些UI工具通常提供更丰富的功能,如:

  1. 管理多轮对话:像专业应用一样创建、保存和管理不同的聊天。
  2. 模型管理:在界面内直接浏览、下载和切换不同的模型。
  3. 高级功能:一些工具还支持上传文件、图片作为提示词,或使用预设的对话模板。

2. 交互中的关键参数

控制模型行为的参数(CLI 或 API 中设置):

temperature(0-1):控制输出随机性。低值(0.2)更确定,高值(0.8)更创意。

API 示例:{"temperature": 0.7}

top_p(0-1):核采样,限制输出概率分布。默认 0.9。

num_predict:最大生成 token 数。默认 128,设为 -1 表示无限制。

stop:停止词,指定生成终止条件。

示例:{"stop": ["n"]} 停止于换行。

CLI 设置:通过 Modelfile 或 ollama run llama3 --temperature 0.5

3. 多模态交互

支持模型:如 llava 或 bakllava,支持图像输入。

示例(API):

curl http://localhost:11434/api/generate -d '{  "model": "llava",  "prompt": "Describe this image",  "images": ["base64_encoded_image_string"]}'

注意:CLI 暂不支持图像输入,需通过 API。

4. 常见场景与示例

对话

ollama run mistral>>> Tell me a story about a dragon.Once, a dragon named Ember guarded a mountain of gold...

代码生成

curl http://localhost:11434/api/generate -d '{  "model": "codellama",  "prompt": "Write a Python function to sort a list."}'

翻译

ollama run llama3>>> Translate "Hello, world!" to Spanish.¡Hola, mundo!

嵌入生成:用于搜索或语义分析:

response = requests.post('http://localhost:11434/api/embeddings', json={    "model": "llama3",    "prompt": "Artificial intelligence"})embedding = response.json()['embedding']

5. 注意事项

上下文限制:模型有 token 限制(通常 8k-32k),长对话可能截断上下文。

性能优化

小模型(如 phi3)适合低配设备。

启用 GPU(需要 CUDA/Metal 支持)加速推理。

运行 ollama ps 检查内存占用,关闭不必要的模型。

错误排查

模型未响应:检查 ollama serve 是否运行,或端口是否被占用。

输出不理想:调整 temperature 或重写提示。

内存不足:选择量化模型(如 llama3:8b-q4_0)。

安全性:API 默认监听本地,若公开访问,需设置 OLLAMA_HOST 并加防火墙。

6. 进阶技巧

自定义提示:通过 Modelfile 设置系统提示,塑造模型角色(如 “幽默助手”)。

FROM llama3SYSTEM You are a witty comedian.

流式输出:API 默认支持流式响应,适合实时应用。

批量处理:编写脚本循环调用 API,处理大量输入。

相关文章

精彩推荐