基于Python程序访问本地部署的DeepSeek和硅基流动DeepSeek API

前排提醒:

1. 本地通过Ollama部署DeepSeek,部署版本为 deepseek-r1:1.5b,若还未进行本地部署,可以参考博客Windows系统上使用Ollama本地部署DeepSeek

2. 线上API使用的是硅基流动(siliconflow)的DeepSeek API,模型名称为 deepseek-ai/DeepSeek-R1


一、Python访问本地部署的DeepSeek

首先要注意,Ollama本地部署DeepSeek服务的默认端口为11434,API接口为 http://127.0.0.1:11434/api/chat ,因此构造好问题、请求参数,接着发送POST请求,最后解析返回结果即可。

可以直接参考以下Python代码:

import requests
# Ollama中提供的chat功能的API地址
url = 'http://127.0.0.1:11434/api/chat'
# 要发送的数据
question = "你好!"
data = {
 "model": "deepseek-r1:1.5b",
 "messages": [{
 "role": "user",
 "content": question}],
 "stream": False
}
# 发送POST请求
response = requests.post(url, json=data)
# 打印模型的输出文本
print(response.json()["message"]["content"])

运行结果如下:

其中,question 是用户提出的问题,response.json()["message"]["content"] 是 DeepSeek 的回复。

二、Python访问硅基流动DeepSeek API

通过硅基流动API访问DeepSeek和访问本地部署DeepSeek的方式有所不同,可以直接参考以下Python代码:

import requests
import json
url = "https://api.siliconflow.cn/v1/chat/completions"
question = "你好!"
payload = {
 "model": "deepseek-ai/DeepSeek-R1",
 "messages": [
 {
 "role": "user",
 "content": question
 }
 ],
 "stream": False,
 "max_tokens": 512,
 "stop": None,
 "temperature": 0.7,
 "top_p": 0.7,
 "top_k": 50,
 "frequency_penalty": 0.5,
 "n": 1,
 "response_format": {"type": "text"},
 "tools": [
 {
 "type": "function",
 "function": {
 "description": "<string>",
 "name": "<string>",
 "parameters": {},
 "strict": False
 }
 }
 ]
}
headers = {
 "Authorization": "Bearer <token>",
 "Content-Type": "application/json"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(json.loads(response.text)["choices"][0]["message"]["content"])

其中,<token> 要替换为自己在硅基流动官网账户上的 API KEYquestion 是用户提出的问题,json.loads(response.text)["choices"][0]["message"]["content"] 是 DeepSeek 的回复。

我将 <token> 替换为自己的 API KEY 后,运行Python程序的结果如下:

作者:叶疏鸿原文地址:https://www.cnblogs.com/detailNew/p/18793652

%s 个评论

要回复文章请先登录注册