Ollama — 接口

有,而且非常多。Ollama 的 API 体系分为两套:原生 API(功能最全)和 OpenAI 兼容 API(生态通用)。

对于你的“合同解析”项目,除了 /api/generate,这几个接口最值得关注:

一、核心必用接口(你的项目刚需)

端点 方法 核心用途 为什么对你的项目很重要
/api/chat POST 多轮对话(推荐) 天然支持 messages 数组,比单 prompt 更易维护上下文,且同样支持 format: json
/api/tags GET 列出本地模型 检查你的 vipsoft 模型是否已创建成功。
/api/show POST 查看模型详情 查看 vipsoft 的 Modelfile 配置(如 num_ctx 是否生效)。
/api/delete DELETE 删除模型 清理旧测试模型,释放磁盘空间。

二、原生 API 完整清单

除了上述核心接口,Ollama 还提供了一套完整的模型管理 API:

  • /api/generate:你正在用的,单次文本补全。
  • /api/chat更现代的聊天接口,使用 messages 数组(含 role)来维持对话记忆。
  • /api/embeddings:生成文本向量(如果你后续要做语义检索)。
  • /api/pull:拉取远程模型(类似 ollama pull)。
  • /api/create:通过 API 直接创建自定义模型(无需命令行)。
  • /api/copy:复制模型。
  • /api/ps:查看当前正在运行的模型进程。

三、OpenAI 兼容接口(生态杀手锏)

Ollama 在 http://localhost:11434/v1/ 路径下提供了一组完全兼容 OpenAI 格式的接口。这意味着你可以直接使用为 ChatGPT 编写的 SDK 或代码来调用本地模型。

  • /v1/chat/completions:对应原生的 /api/chat
  • /v1/embeddings:对应原生的 /api/embeddings
  • /v1/models:对应原生的 /api/tags

Python 示例(使用 OpenAI SDK 调用本地 Ollama):

# 安装 openai 包:pip install openai
from openai import OpenAI

# 将 client 指向你的本地 Ollama 服务
client = OpenAI(
    base_url='http://localhost:11434/v1',
    api_key='ollama'  # 本地通常无需验证,但必须传一个非空值
)

# 像调用 ChatGPT 一样调用你的 vipsoft 模型
response = client.chat.completions.create(
    model="vipsoft",  # 你的自定义模型名
    messages=[
        {"role": "system", "content": "你是合同解析助手"},
        {"role": "user", "content": "解析这份合同..."}
    ],
    temperature=0.1
)

print(response.choices[0].message.content)

四、快速验证命令(终端测试)

你可以直接在 CMD 或 PowerShell 中运行以下命令快速体验:

  1. 查看模型列表
    curl http://localhost:11434/api/tags
    
  2. 使用 Chat API(推荐替代 Generate)
    curl http://localhost:11434/api/chat -H "Content-Type: application/json" -d '{
      "model": "vipsoft",
      "messages": [
        { "role": "user", "content": "你是谁?" }
      ],
      "stream": false,
      "format": "json"
    }'
    

五、官方文档入口

  • 官网文档https://docs.ollama.com/api
  • 在线文档https://github.com/ollama/ollama/blob/main/docs/api.md(最详细)。

建议:在你的合同解析 Python 代码中,优先考虑迁移到 /api/chat/v1/chat/completions。因为 messages 结构比拼接长字符串更清晰,也更利于未来扩展多轮问答(比如先让模型确认合同类型,再执行解析)。

posted @ 2026-05-22 20:01  VipSoft  阅读(19)  评论(0)    收藏  举报