1. API调用

1.1 api调用的参数介绍

前几天我在自己的电脑上部署了deepseek大模型,并配置了UI对话框。 因为本地部署用的是Ollama,所以调用大模型API使用的也是Ollama的API接口。

对话补全API为例,Ollama接口为:POST /api/generate
其参数如下:

参数

model: (必需)模型名称
prompt: 要生成响应的提示
suffix: 模型响应后的文本
images: (可选)一个base64编码的图像列表(用于多模态模型,如 llava )
高级参数(可选):

format: 返回响应的格式。目前唯一接受的值是 json
options: 其他模型参数,如 temperature、seed 等
system: 系统消息
template: 要使用的提示模板
context: 从先前对 /generate 的请求中返回的上下文参数,可以用于保持简短的对话记忆
stream: 如果设置为 false ,响应将作为单个响应对象返回,而不是一系列对象流
raw: 如果设置为 true ,将不会对提示进行任何格式化。如果您在请求API时指定了完整的模板提示,可以选择使用 raw 参数
keep_alive: 控制模型在请求后保留在内存中的时间(默认:5m)

1.2 示例请求 (流式)

curl http://localhost:11434/api/generate -d '{
  "model": "deepseek-r1:14b",
  "prompt": "为什么草是绿的?"
}'

备注: http://localhost:11434 是 Ollama 在本地运行时的服务地址。

1.3 使用postman调用api接口 (get)

http://localhost:11434/v1/models

1.4 使用postman调用api接口(post)

http://localhost:11434/v1/chat/completions

Headers: 

 Content-Type: application/json

body:

{
    "model": "deepseek-r1:14b",
    "messages": [ 
      { "role": "system", "content": "总是用押韵的方式回答" },
      { "role": "user", "content": "自我介绍" }
    ], 
    "temperature": 0.7, 
    "max_tokens": -1,
    "stream": false
  }

1.5 curl  http://localhost:11434/v1/models

 deepseek R1本地离线部署与API调用_deepseek本地部署后如何调用api-CSDN博客

2. Python 调用 API
知道了接口的基本结构,下面我们看下如何用Python来调用。

2.1 环境准备
在开始使用 Python 与 Ollama API 交互之前,请确保您的开发环境满足以下条件:

Python: 安装 Python 3.8 或更高版本。
pip: 确保已安装 pip,Python 的包管理工具。
ollama 库: 用于更方便地与 Ollama API 交互。安装命令如下:

pip install ollama

2.2 使用示例

2.2.1 generate 方式

import ollama

client = ollama.Client(host='http://localhost:11434')
print('----------')
models = client.list()
print('Available models:', models)

print('----------')
response = client.generate(
    model="deepseek-r1:14b",  # 指定模型名称
    prompt='baidu 简介'
)

print(response['response'])


2.2.2 chat方式

可以通过设置 stream=True 启用响应流,使函数调用返回一个 Python 生成器,其中每个部分都是流中的一个对象。

from ollama import Client

client = Client(
    host='http://localhost:11434',
    headers={'x-some-header': 'some-value'}
)

stream = client.chat(
    model='deepseek-r1:14b',
    messages=[{'role': 'user', 'content': '中美关税政策对中国老百姓的影响?'}],
    # stream=False,
    stream=True,
)

# print(stream)
'''
print('--------stream=False-----') 
print(stream['message']['content'])
print('-------stream=False------')
'''
print('-------stream=true------')
for chunk in stream:
    print(chunk['message']['content'], end='', flush=True)
print('-------stream=true------\n')
2.3 运行结果展示

AI入门7:python三种API方式调用本地Ollama+DeepSeek_deepseek大模型下载到本地后,如何在python代码中调用-CSDN博客

完整python接口调用示例参考:https://github.com/datawhalechina/handy-ollama/blob/main/docs/C4/2.%20%E5%9C%A8%20Python%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20Ollama%20API.md
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/Attitude93/article/details/145849077

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐