调用本地 deepseek api
前几天我在自己的电脑上部署了deepseek大模型,并配置了UI对话框。因为本地部署用的是Ollama,所以调用大模型API使用的也是Ollama的API接口。
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
更多推荐
所有评论(0)