目录
[2.2 通过url调用](#2.2 通过url调用)
1.介绍
这篇博客用来教你如何从本地调用ollama中deepseek的模型接口,直接和deepseek进行对话。
2.开始调用
2.1模型检验
首先要保证ollama已经安装到本地,并且已经下载了deepseek模型。可以使用下面的命令检验:
ollama list

2.2使用subprocess
使用subprocess
直接与模型进行对话,使用ollama
命令中的pull
或run
选项来调用模型。
import subprocess
def ollama_deepseek_conversation(prompt):
try:
# 通过命令行使用 ollama run deepseek-r1:7b 模型,注意这里的模型名字,可以使用ollama list可以看见模型名字
result = subprocess.run(['ollama', 'run', 'deepseek-r1:7b'], input=prompt,
stdout=subprocess.PIPE, text=True)
# 获取模型响应并返回
return result.stdout.strip()
except Exception as e:
return f"Error occurred: {e}"
if __name__ == "__main__":
print("开始对话,输入'quit'退出")
while True:
# 获取用户输入
user_input = input("你: ")
if user_input.lower() == 'quit':
print("对话结束")
break
# 调用deepseek模型获取响应
response = ollama_deepseek_conversation(user_input)
print(f"deepseek: {response}")

2.2 通过url调用
1.创建一个本地的服务来将命令行调用转化为 REST API 请求
from flask import Flask, request, jsonify
import subprocess
app = Flask(__name__)
# 定义一个路由来处理POST请求
@app.route('/deepseek', methods=['POST'])
def deepseek_conversation():
data = request.get_json() # 获取用户的 JSON 输入
prompt = data.get('prompt', '') # 从 JSON 中获取 'prompt'
try:
# 运行 ollama 命令并将用户输入传给 deepseek-r1:7b
result = subprocess.run(['ollama', 'run', 'deepseek-r1:7b'], input=prompt,
stdout=subprocess.PIPE, text=True)
# 获取模型的响应
response = result.stdout.strip()
return jsonify({"response": response}) # 返回 JSON 格式的响应
except Exception as e:
return jsonify({"error": str(e)}), 500 # 捕获错误并返回500状态码
if __name__ == "__main__":
app.run(host="0.0.0.0", port=5000) # 启动 Flask 服务,监听5000端口
2.使用 requests
库来向这个本地服务发送 HTTP 请求,并获得 deepseek 模型的响应。
import requests
def ollama_deepseek_conversation(prompt):
try:
url = "http://localhost:5000/deepseek" # Flask API 地址
response = requests.post(url, json={"prompt": prompt}) # 发送 POST 请求
if response.status_code == 200:
return response.json().get("response", "无响应") # 解析返回的 JSON 数据
else:
return f"Error: {response.status_code} {response.text}"
except Exception as e:
return f"Error occurred: {e}"
if __name__ == "__main__":
print("开始对话,输入'quit'退出")
while True:
user_input = input("你: ")
if user_input.lower() == 'quit':
print("对话结束")
break
# 调用 deepseek 模型并获取响应
response = ollama_deepseek_conversation(user_input)
print(f"deepseek: {response}")

3.总结
和deepseek对话,可行的方式不仅仅只有命令窗口或webui等等,还可以使用url调用,这样一来,你就可以使用一些硬件接入deepseek(例如使用ESP32接入自己的本地deepseek制作一个本地聊天机器人)。
希望这一片博客可以为你的思路提供新的参考。