使用API方式远程调用ollama模型

1. 在有GPU的环境启动一个ollama大模型,非常简单:

可以参考官网https://github.com/ollama/ollama/blob/main/docs/linux.md

  注意,ollama启动时默认监听在127.0.0.1:11434上,可以通过配置OLLAMA_HOST环境变量修改。另外,配置OLLAMA_ORIGINS为任意地址,它表示允许访问的来源地址。

export OLLAMA_HOST="0.0.0.0:11434" 

export OLLAMA_ORIGINS="*"

ollama serve&  

ollama run qwen2.5:7b-instruct

另外,大模型的文件默认下载到/root/.ollama/models/文件夹下,包含blobs和manifests两个文件夹。可以通过修改环境变量 export OLLAMA_MODELS=/root/ollama-model 让大模型文件下载到指定位置。如果要迁移的话需要查看大模型的manifest文件,例如使用命令 more manifests/registry.ollama.ai/library/qwen2.5/7b 查看大模型对应的sha256xxx文件

然后把manifest和blobs下的相关文件到拷贝到指定位置即完成了迁移。

2. 然后就可以在远端访问:

curl http://172.2.3.4:11434/api/generate -d '{"model": "qwen2.5:7b-instruct","prompt": "what can you do?","stream":false}'

curl http://172.2.3.4:11434/api/generate -d '{
  "model": "qwen2.5:7b-instruct",
  "prompt": "Why is the sky blue?",
  "stream": false,
  "options": {
    "num_keep": 5,
    "seed": 42,
    "num_predict": 100,
    "top_k": 20,
    "top_p": 0.9,
    "tfs_z": 0.5,
    "typical_p": 0.7,
    "repeat_last_n": 33,
    "temperature": 0.8,
    "repeat_penalty": 1.2,
    "presence_penalty": 1.5,
    "frequency_penalty": 1.0,
    "mirostat": 1,
    "mirostat_tau": 0.8,
    "mirostat_eta": 0.6,
    "penalize_newline": true,
    "stop": ["\n", "user:"],
    "numa": false,
    "num_ctx": 1024,
    "num_batch": 2,
    "num_gqa": 1,
    "num_gpu": 1,
    "main_gpu": 0,
    "low_vram": false,
    "f16_kv": true,
    "vocab_only": false,
    "use_mmap": true,
    "use_mlock": false,
    "rope_frequency_base": 1.1,
    "rope_frequency_scale": 0.8,
    "num_thread": 8
  }
}'

3.  那怎么通过openai代码接口访问呢?

from openai import OpenAI
client = OpenAI(
    base_url='http://172.2.3.4:11434/v1/',
    api_key='ollama',  # required but ignored
)
chat_completion = client.chat.completions.create(
    messages=[
        {
            "role": "system",
            "content": "你是一个能够理解中英文指令并帮助完成任务的智能助手。你的任务是根据用户的需求生成合适的分类任务或生成任务,并准确判断这些任务的类型。请确保你的回答简洁、准确且符合中英文语境。",
        },
        {
            "role": "user",
            "content": "Come up with a series of tasks:1. Link all the entities in the sentence (highlighted in brackets) to a Wikipedia page.For each entity, you should output the Wikipedia page title, or output None if you know.",
        }
    ],

    model='llama3.2:1b',
    #model='qwen2.5:7b',

    max_tokens=38192,
    temperature=0.7,
    top_p=0.5,
    frequency_penalty=0,
    presence_penalty=2,
)

print(chat_completion)

可能会报错:ImportError: cannot import name 'OpenAI' from 'openai',原因可能是python版本低,我用的python3.10环境的openai不行,当时用python3.12可以。

4. content填写为"Brainstorm a list of possible New Year's resolutions." llama server会报错400 不晓得为啥。一般400错误是客户端发送的请求有误,服务器无法处理。对于大模型API来说,这通常意味着请求格式不正确、缺少必要的参数、或者提供的参数值无效。但是我的格式没有问题啊,只是修改了content里面的字符串,只要里面有单引号就会报400。

       等我搞明白了,我再来更新。

5. 在调用API接口时还可以填写其他的参数,例如temperature等,可以参考如下链接:

ollama/docs/api.md at main · ollama/ollama · GitHub

ollama/docs/modelfile.md at main · ollama/ollama · GitHub

常用参数的意义,简单摘录如下:

Ollama API 调用是指用户通过编程接口(API)与 Ollama 平台进行交互的过程。API 通常是一个预定义的接口,允许软件应用程序之间进行通信。调用 API 时,用户需要根据 API 提供的文档,使用正确的请求方法(如 GET、POST、PUT、DELETE 等)以及必要的参数和认证信息来发送请求。 在进行 Ollama API 调用时,通常需要遵循以下步骤: 1. 获取 API 密钥:注册并登录 Ollama 平台后,用户通常可以获得一个 API 密钥,用于验证身份和追踪使用情况。 2. 了解 API 文档:阅读 Ollama 提供的 API 文档,了解不同端点(endpoints)的功能、所需参数、请求格式和可能的响应。 3. 构造请求:根据 API 文档构造 HTTP 请求,包括确定请求方法、设置请求头(如认证、内容类型等)、定义请求参数和准备请求体(如果需要)。 4. 发送请求:使用编程语言或工具(如 cURL、Postman、编程语言内置的 HTTP 库等)发送请求到指定的 API 端点。 5. 处理响应:接收并处理 API 返回的响应数据,这可能包括检查响应状态码、解析 JSON 或 XML 格式的响应体等。 6. 错误处理:对可能出现的错误进行处理,如网络错误、服务器错误、认证失败或数据不符合预期等。 请注意,上述步骤是通用的 API 调用流程,并不特指 Ollama 平台的具体操作。对于具体的 Ollama API 调用,需要查阅该平台提供的最新官方文档来获取详细信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值