1. Ollama REST API 概述与核心接口定位
Ollama作为当前最流行的本地大模型运行框架之一,其REST API设计直接决定了开发者与模型的交互体验。服务启动后默认在11434端口暴露API端点,这些接口可分为三大类:
- 模型交互类:/api/generate(文本生成)、/api/chat(对话模式)、/api/embed(向量嵌入)
- 模型管理类:/api/pull(拉取模型)、/api/push(推送模型)、/api/delete(删除模型)
- 信息查询类:/api/tags(模型列表)、/api/show(模型详情)、/api/ps(运行状态)
其中/api/generate作为最基础的文本生成接口,其设计特点体现在:
- 纯HTTP协议兼容性(无需WebSocket)
- 同步/异步双模式支持(通过stream参数切换)
- 多模态扩展能力(images参数支持视觉模型)
- 显存智能管理(keep_alive机制)
实际测试显示,当显存不足时Ollama会自动卸载闲置模型,这个特性在消费级显卡上尤为重要。我曾在一台RTX 3090(24GB显存)上同时运行7B和13B模型时,就触发了这个保护机制。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. /api/generate 接口参数深度解析
2.1 基础参数配置策略
model参数的命名规范需要特别注意:
python复制# 正确示例
"model": "llama3:8b-instruct-q4_0"
# 常见错误
"model": "llama3" # 缺少tag会默认使用latest,可能造成版本混乱
prompt工程实践建议:
- 对于非对话模型,建议包含完整的上下文信息
- 多轮对话场景应该自行维护对话历史
- 实测表明,在prompt开头添加"请用中文回答"能显著改善某些英文预训练模型的中文输出质量
2.2 高级参数调优指南
options对象是最关键的调优入口,其完整结构如下:
| 参数 | 类型 | 典型值 | 效果说明 |
|---|---|---|---|
| temperature | float | 0.7 | 值越高随机性越强 |
| top |
