摘要:def query_deepseek(prompt, model="deepseek-chat", temperature=0.7):
以下是如何使用 Python 和 Ollama 调用本地 DeepSeek 模型的示例代码和步骤:
python
import Requests # 调用 Ollama 的 REST API
import json
def query_deepseek(prompt, model="deepseek-chat", temperature=0.7):
"""
调用本地 Ollama 的 DeepSeek 模型
参数:
- prompt: 输入的提示文本
- model: 模型名称(需与本地 Ollama 的模型名称一致)
- temperature: 生成文本的随机性控制(0-1)
"""
url = "http://localhost:11434/api/generate"
payload = {
"model": model,
"prompt": prompt,
"temperature": temperature,
"stream": False # 关闭流式输出
}
try:
response = requests.post(url, json=payload)
response.rAIse_for_status # 检查 HTTP 错误
return json.loads(response.text)["response"]
except requests.Exceptions.RequestException as e:
print(f"请求错误: {e}")
return None
except KeyError:
print("响应格式错误")
return None
# 使用示例
if __name__ == "__main__":
# 初始化 Ollama 服务(确保服务已启动)
# 通常在命令行运行:ollama serve
# 检查模型是否存在(需提前安装)
# 命令行执行:ollama pull deepseek-chat
test_prompt = "用Python写一个快速排序算法"
response = query_deepseek(test_prompt)
if response:
print("模型回复:")
print(response)
准备工作:
安装 Ollama:bash
curl -fsSL https://ollama.com/install.sh | sh
下载 DeepSeek 模型(需确保模型已适配 Ollama):bash
ollama pull deepseek-chat # 模型名称可能根据实际情况变化
启动 Ollama 服务:bash
ollama serve
代码说明:
通过 REST API(默认端口 11434)与 Ollama 通信支持自定义参数:model: 模型名称(需与本地安装的一致)temperature: 控制生成随机性(0 更确定,1 更随机)max_tokens: 可添加参数控制最大输出长度常见问题处理:
模型未找到错误:确认模型已下载:ollama list检查模型名称是否匹配服务连接问题:确保 Ollama 服务正在运行检查防火墙设置是否阻止了 11434 端口中文支持问题:python
# 可以添加系统提示来增强中文能力
enhanced_prompt = f"""你是DeepSeek,一个擅长中文的AI助手。请用中文回答。
用户问题:{prompt}"""
高级用法示例:
python
# 流式输出处理
def stream_response(prompt):
url = "http://localhost:11434/api/generate"
payload = {
"model": "deepseek-chat",
"prompt": prompt,
"stream": True
}
with requests.post(url, json=payload, stream=True) as response:
for line in response.iter_lines:
if line:
chunk = json.loads(line.decode('utf-8'))
print(chunk.get("response", ""), end="", flush=True)
# 带上下文的多轮对话
def chat_with_context:
context =
while True:
user_input = input("你:")
if user_input.lower == 'exit':
break
context.append({"role": "user", "content": user_input})
response = query_deepseek({
"messages": context,
"options": {
"temperature": 0.8,
"max_tokens": 500
}
})
if response:
context.append({"role": "assistant", "content": response})
print(f"\nAI:{response}\n")
建议的模型管理命令:
bash
# 查看已安装模型
ollama list
# 卸载模型
ollama rm deepseek-chat
# 创建自定义模型(如果需要调整参数)
# 创建 Modelfile
FROM deepseek-chat
PARAMETER temperature 0.8
# 构建自定义模型
ollama create my-deepseek -f ./Modelfile
来源:老客数据一点号