所有文章 > 日积月累 > Ollama 对外提供 API 的全面指南
Ollama 对外提供 API 的全面指南

Ollama 对外提供 API 的全面指南

Ollama 的安装与初始设置

Ollama 是一个强大的 AI 大模型平台,用户可以通过该平台下载并运行各种 AI 模型,以提供 API 服务。安装 Ollama 的第一步是访问其官方网站 Ollama 并下载相应的安装包。安装完成后,用户可以通过命令行界面(CLI)进行操作。为了验证安装是否成功,用户可以在终端中运行 ollama --version 命令。

在安装过程中,Ollama 默认会将模型保存在系统特定的目录下,例如 Windows 系统的 C 盘或 MacOS 的 ~/.ollama/models。为了避免因磁盘空间不足而导致的问题,用户可以通过设置环境变量 OLLAMA_MODELS 来修改模型的存储路径。例如,在 Windows 系统中,可以设置为 E:ollamamodels,并重启 Ollama 或 PowerShell 以使设置生效。

Ollama 安装示意图

Docker 运行 Ollama

Docker 是一种轻量级的虚拟化技术,可以用于快速部署和运行 Ollama。用户可以通过以下命令在 Docker 中运行 Ollama:

docker run -d --gpus=all -v ollama:/root/.ollama -p 11434

此命令会在后台启动一个 Ollama 容器,并通过 11434 端口提供服务。用户需要确保 Docker 已正确安装并支持 GPU 加速,以充分利用 AI 模型的性能。

Docker 运行 Ollama

Ollama AI 模型的下载和运行

用户可以通过 Ollama 提供的命令行工具下载和运行 AI 模型。首先,访问 Ollama 模型库,选择所需的模型并运行以下命令进行下载:

ollama run llama3.1

下载完成后,用户可以通过 API 接口进行问答和其他任务。为了提供 API 服务,用户需要安装代理服务并配置相应的环境。

安装代理服务

在提供 API 服务之前,用户需要安装代理服务。首先,创建一个新的虚拟环境并激活它:

python -m venv D:/ollama
ollama/Scripts/activate.bat

接下来,安装必要的 Python 包:

(ollama)> pip install litellm
pip install litellm[proxy]

运行模型并提供服务

在安装完代理服务后,用户可以使用以下命令运行模型并提供服务:

litellm --model ollama/llama3.1

此时,Ollama 模型已在本地服务器上运行,用户可以通过 API 接口进行交互。

Ollama 的环境变量配置

在使用 Ollama 提供服务时,合理配置环境变量可以大大提升其性能和可用性。以下是一些常用的环境变量设置:

  • OLLAMA_HOST:设置 Ollama 服务监听的网络地址,默认是 127.0.0.1。若需对外提供服务,可设置为 0.0.0.0
  • OLLAMA_PORT:指定 Ollama 服务监听的端口,默认是 11434。若有冲突,可修改为其他端口。
  • OLLAMA_KEEP_ALIVE:指定模型加载到内存中后的存活时间。建议设置为 24h 提高访问速度。
  • OLLAMA_MAX_LOADED_MODELS:限制同时加载到内存中的模型数量,默认是 1

Ollama 的 API 调用

Ollama 提供两种主要的 API 接口:/api/generate/api/chat。前者用于生成单个文本片段,而后者则支持对话式的多轮交互。

API 生成示例

用户可以通过以下代码片段调用 Ollama 的 API 进行文本生成

import requests
import json

def generate_text(model, prompt):
    url = 'http://localhost:11434/api/generate'
    data = {
        "model": model,
        "prompt": prompt,
    }
    response = requests.post(url, headers={'Content-Type': 'application/json'}, data=json.dumps(data))
    if response.status_code == 200:
        result = response.json().get('response', '')
        print(result)
    else:
        print(f"Error: {response.status_code}")

generate_text('llama3.1', '你好')

流式聊天示例

以下是使用 Ollama chat API 的示例代码:

import requests
import json

def chat_with_model(model, messages):
    url = 'http://localhost:11434/api/chat'
    data = {
        "model": model,
        "messages": messages,
        "stream": True
    }
    response = requests.post(url, headers={'Content-Type': 'application/json'}, json=data)
    for line in response.iter_lines():
        if line:
            print(json.loads(line)['content'])

chat_with_model('qwen2:latest', [{'role': 'user', 'content': '你好'}])

FAQ

什么是 Ollama?

Ollama 是一个支持多种 AI 模型的平台,用户可以通过它下载和运行模型,并通过 API 提供智能服务。

如何修改 Ollama 的模型存储位置?

用户可以通过设置环境变量 OLLAMA_MODELS 来修改模型的存储路径。例如,在 Windows 系统中,可以设置为 E:ollamamodels

Ollama 支持哪些类型的 API?

Ollama 提供 /api/generate/api/chat 两种 API。前者用于生成文本片段,后者用于支持对话的交互。

如何运行 Ollama 的模型?

用户可以使用命令 ollama run <model_name> 下载并运行模型。在 Docker 中运行 Ollama 则需要使用 docker run 命令。

环境变量 OLLAMA_KEEP_ALIVE 有什么作用?

OLLAMA_KEEP_ALIVE 用于设置模型在内存中的存活时间。设置较长的时间可以提高访问速度,避免频繁加载模型。

#你可能也喜欢这些API文章!