Python调用本地DeepSeek模型教程

360影视 欧美动漫 2025-04-05 12:50 1

摘要: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

来源:老客数据一点号

相关推荐