参考地址
https://github.com/ollama/ollama/blob/main/docs/api.md
常用命令
| 从模型库下载模型(支持版本号,如 ) |
|
| 查看本地已下载的所有模型 |
|
| 启动交互式对话模式 |
|
| 启动 Ollama 服务(支持 API 调用) |
|
| 停止当前运行的模型实例 |
|
| 删除本地模型 |
|
| 查看模型详细信息(参数、上下文长度等) |
|
| 查看正在运行的模型进程 |
|
| 更新 Ollama 到最新版本 |
|
| 获取命令帮助 |
|
自定义模型
模型配置文件
FROM llama2:7b
PARAMETER temperature 0.8
SYSTEM_PROMPT 你是一个专业的技术顾问
命令创建
ollama create tech-advisor -f Modelfile
api列表
功能 | 请求方法 | URL | 核心参数 | 说明 |
生成文本 | POST |
|
(必填) (必填) (可选) (高级参数) | 生成文本响应,支持流式返回。可配置温度、最大长度等参数。 |
生成聊天完成 | POST |
|
(必填) (必填) (可选) | 处理聊天格式输入(如 )。 |
创建自定义模型 | POST |
|
(必填) (必填,Modelfile 路径) | 基于自定义 Modelfile 创建新模型。 |
列出本地模型 | GET |
| 无 | 返回本地已下载的所有模型及其版本。 |
查看模型信息 | GET |
|
(必填) | 显示指定模型的详细信息(如描述、参数、Modelfile 内容)。 |
复制模型 | POST |
|
(必填) (必填) | 复制现有模型并指定新名称。 |
删除模型 | POST |
|
(必填) | 删除本地模型。 |
拉取模型 | POST |
|
(必填,格式 ) | 从远程仓库下载模型。 |
推送模型 | POST |
|
(必填) | 将本地模型推送到远程仓库(需认证)。 |
生成嵌入向量 | POST |
|
(必填) (必填) | 生成文本的嵌入向量,用于语义搜索等任务。 |
列出运行中模型 | GET |
| 无 | 显示当前加载到内存中的模型。 |
获取服务状态 | GET |
| 无 | 返回服务器状态(如内存使用、模型加载情况)。 |
获取版本信息 | GET |
| 无 | 显示 Ollama 版本和系统信息。 |
常用环境变量
环境变量名 | 说明 | 默认值 | 示例 |
OLLAMA_HOST | 服务监听地址(0.0.0.0 允许外部访问) |
|
|
OLLAMA_PORT | 服务监听端口 |
|
|
OLLAMA_MODELS_DIR | 模型存储路径 |
|
|
OLLAMA_MEMORY | 模型内存限制(单位:GB,支持小数) |
|
|
OLLAMA_KEEP_ALIVE | 模型未活动时保留时间(分钟) |
|
|
OLLAMA_LOG_LEVEL | 日志级别( , , , , ) |
|
|
OLLAMA_MODELFILE | 默认 Modelfile 路径(用于自定义模型创建) |
|
|
OLLAMA_CACHE_DIR | 缓存目录(用于存储下载的模型文件) |
|
|
OLLAMA_DEBUG | 启用调试模式(等价于 ) |
|
|
OLLAMA_CORS_ALLOWED | 允许跨域请求的源(逗号分隔) |
(所有源) |
|
各种语言框架集成
Python
pip install ollama-python
// import ollama
// response = ollama.run("llama2", "介绍一下埃菲尔铁塔")
// print(response)
ollama-js
npm install ollama-js
// const ollama = require('ollama-js');
// ollama.run('llama2', 'Hello world!', (response) => {
// console.log(response);
// });
Go
go get github.com/ollama/ollama/pkg/client
// package main
// import (
// "fmt"
// "github.com/ollama/ollama/pkg/client"
// )
// func main() {
// c := client.NewClient("http://localhost:11434")
// response, err := c.GenerateText("llama2", "介绍一下埃菲尔铁塔", false)
// if err != nil {
// panic(err)
// }
// fmt.Println(response.Response)
// }
Java
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.9.3</version>
</dependency>
// import okhttp3.*;
// import java.io.IOException;
// public class OllamaExample {
// public static void main(String[] args) {
// OkHttpClient client = new OkHttpClient();
// Request request = new Request.Builder()
// .url("http://localhost:11434/api/generate")
// .post(RequestBody.create("{\"model\":\"llama2\",\"prompt\":\"介绍一下埃菲尔铁塔\"}", MediaType.get("application/json")))
// .build();
// try (Response response = client.newCall(request).execute()) {
// System.out.println(response.body().string());
// } catch (IOException e) {
// e.printStackTrace();
// }
// }
// }
Next.js
npm install @langchain/ollama
// import { ChatOllama } from "@langchain/ollama";
// const llm = new ChatOllama({ model: "llama3.1" });
// const response = await llm.invoke("介绍一下埃菲尔铁塔");
// console.log(response);