Ollama 提供了完善的应用程序接口(API),这让你能在自己编写的程序或脚本中,轻松调用和管理本地部署的大模型 。它的接口设计十分友好,既包含了简单的命令行交互,也提供了功能强大的 REST API,方便进行集成开发 。
下面这个表格整理了Ollama最核心的几类API接口,让你能快速了解其能力:
| 接口类别 | 默认端点示例 | 主要功能描述 |
|---|---|---|
| 生成响应 | POST /api/generate |
向模型发送提示词(prompt)并获取生成的文本回复 。 |
| 对话补全 | POST /api/chat |
以多轮对话的消息格式与模型交互,更适合构建聊天应用 。 |
| 模型管理 | GET /api/tags |
获取本地已下载的模型列表、拉取新模型或删除已有模型等 。 |
| 嵌入向量 | POST /api/embeddings |
获取输入文本的向量表示,可用于语义搜索、聚类等任务 。 |
🛠️ 接口使用详解
原生REST API
Ollama的原生API是其核心,默认的服务地址是 http://localhost:11434 。
-
生成文本:最常用的接口是
/api/generate,你可以使用类似下面的Python代码来与模型对话:import requests url = "http://localhost:11434/api/generate" data = { "model": "llama3", # 指定使用的模型 "prompt": "请用简单的话解释人工智能", # 你的问题或提示 "stream": False # 设置为True时可以流式逐步获取响应 } response = requests.post(url, json=data) print(response.json()["response"])
-
多轮对话:若要构建有上下文记忆的聊天应用,可以使用
/api/chat接口,并以消息列表的形式传递对话历史 。
OpenAI兼容接口
Ollama还提供了一个与OpenAI API格式兼容的端点 http://localhost:11434/v1 。这意味着许多为OpenAI设计的客户端库、开发框架(如LangChain )甚至现有的部分应用,只需修改基础URL就能无缝接入你本地运行的Ollama模型。例如:
import openai openai.base_url = "http://localhost:11434/v1" openai.api_key = 'ollama' # 此处可任意填写,非空即可 response = openai.chat.completions.create( model="llama3.1", messages=[{"role": "user", "content": "你好!"}] )
工具调用
这是一个非常实用的高级功能。从2024年7月起,Ollama开始支持工具调用(Tool Calling) 。这允许模型在回答问题过程中,智能地调用你预先定义好的外部工具(例如查询天气的API、执行一段代码或进行网页搜索),并将工具返回的结果整合到最终回答中,从而完成更复杂的任务 。
🔒 安全使用须知
在享受本地部署带来的数据隐私好处时,也务必注意安全问题。Ollama服务的API接口在默认情况下没有身份验证,如果配置不当,可能被他人未授权访问 。
请参考以下安全建议:
-
仅本地服务:如果只在本地使用,可通过设置环境变量
OLLAMA_HOST=127.0.0.1,禁止外部网络访问 。 -
对外提供服务:若需要对外开放,务必通过防火墙设置IP白名单,或使用反向代理(如配置Nginx)添加身份验证层 。
💻 从终端到应用
-
命令行:安装Ollama后,最直接的交互方式就是在终端使用
ollama run <模型名称>命令,与模型进行即时对话 。 -
集成到项目:通过上述的API,你可以用任何熟悉的编程语言(Python, JavaScript, Go等)将Ollama模型集成到你的网站、桌面应用或自动化脚本中 。
希望这些信息能帮助你顺利使用Ollama的接口。如果你对某个具体的API细节或者如何实现某个特定功能有进一步的疑问,我很乐意提供更深入的探讨。