Python远程调用本地部署的DeepSeek R1大模型,本地对话客户端部署

1.写在前面

上一节演示了在本地部署了基于DeepSeek R1的大模型,由于只能在控制台里交互,对于业务操作极不方便,本节展示实现DeepSeek模型的远程交互。
2.开启Ollama

打开Ollama,确保服务正常运行:
ollama serve
如果出现端口占用,表示服务已经在正常运行中。可以通过命令的方式查看11434端口是否正常监听。

开放0.0.0.0监听,添加一个环境变量。OLLAMA_HOST值为0.0.0.0:11434

重新启动Ollama后,监听已经变为0.0.0.0:11434

3.安装Chatbox

安装Chatbox是一款开源免费、跨平台的桌面客户端,支持 Windows、Mac、Linux 以及移动端的 iOS 和 Android 系统,也有网页版。它可以调用 ChatGPT、Claude、Google Gemini Pro 等大语言模型,还支持本地数据存储、多语言模型集成、图像生成等功能,可用于日常聊天、代码调试、文档生成、图像创作等。
下载安装Chatbox,登录到官方网站:
chatboxai.app/zh

下载完成后使用默认方式安装即可,安装后运行Chatbox主程序。

4.配置Chatbox

选择使用自己的API Key或本地模型。
image

选择Ollama API

选择API域名,使用本机的Ollama API地址,模型选择32B。
image
image
我这里仅将新对话的默认显示修改为DeepSeek,其它配置保持默认,点击保存。

可以正常的对话,对于一些需要本地化测试的实验数据、个人隐私数据等,可以通过此方式避免数据泄露。

5.Python远程调用

在进行远程调用时,需要将Ollama的API接口地址扩展至局域网访问,此处需要在防火墙中放行11434的tcp端口。
可以使用以下cmd命令,以管理员身份运行一键放行。
netsh advfirewall firewall add rule name=”放行11434端口” dir=in action=allow protocol=TCP localport=11434
或者手动放行

安装requests,使用pip安装
pip3 install requests
粘贴脚本,存至test.py
import requests
import json

项目参数

API_BASE_URL = ‘http://localhost:11434’
API_PATH = ‘/api/generate’

def get_next_chapter(prompt):
“””
向 Ollama 模型发送请求并获取内容

:param prompt: 输入的提示信息
:return: 模型生成的响应内容
"""
# 替换为你使用的模型名称
model_name = 'deepseek-r1:32b'
data = {
    "model": model_name,
    "prompt": prompt,
    "stream": False
}

response = requests.post(
    f"{API_BASE_URL}{API_PATH}",
    json=data
)

if response.status_code == 200:
    # 使用 response.json() 来解析 JSON 数据
    response_data = response.json()
    # 从解析后的字典中获取 "response" 字段的值
    return response_data["response"]
else:
    raise ValueError(f"请求失败,状态码:{response.status_code}")

def main():
try:
# 定义一个示例提示信息,你可以根据需求修改
prompt = “请生成一个小故事。”
result = get_next_chapter(prompt)
print(“模型生成的内容:”)
print(result)
except ValueError as e:
print(f”发生错误:{e}”)
except requests.RequestException as e:
print(f”网络请求出现问题:{e}”)
if name == “main“:
main()
将API_BASE_URL修改为你的Ollama地址,main函数里的prompt修改为你的问题,然后保存文件至test.py,运行脚本:
python3 test.py
可以看到,此Demo已经由DeepSeek将问题回答出来了。后续可以将此示例代码扩展至其它应用中集成使用。

声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/424943.html

联系我们
联系我们
分享本页
返回顶部