Ollama 已在当地摆设了deepseek,怎样用Python语言调用

[复制链接]
发表于 2025-10-17 22:28:35 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
以下是利用 Python 调用摆设在 Ollama 上的 DeepSeek 模子的步调:
1. 安装依赖

bash
复制
  1. pip install requests
复制代码
2. 底子调用代码

python
复制
  1. import requests
  2. import json
  3. # 配置信息
  4. OLLAMA_HOST = "http://localhost:11434"  # 默认地址
  5. MODEL_NAME = "deepseek-chat"  # 确认模型名称(通过 ollama list 查看)
  6. def generate(prompt: str, max_tokens: int = 512, temperature: float = 0.7):
  7.     """
  8.     调用 DeepSeek 模型生成文本
  9.    
  10.     参数:
  11.     prompt: 输入的提示文本
  12.     max_tokens: 最大生成token数(默认512)
  13.     temperature: 温度参数(0-1,默认0.7)
  14.     """
  15.     try:
  16.         response = requests.post(
  17.             url=f"{OLLAMA_HOST}/api/generate",
  18.             headers={"Content-Type": "application/json"},
  19.             json={
  20.                 "model": MODEL_NAME,
  21.                 "prompt": prompt,
  22.                 "stream": False,  # 关闭流式输出
  23.                 "options": {
  24.                     "temperature": temperature,
  25.                     "max_tokens": max_tokens
  26.                 }
  27.             }
  28.         )
  29.         response.raise_for_status()  # 检查HTTP错误
  30.         return json.loads(response.text)["response"]
  31.    
  32.     except requests.exceptions.RequestException as e:
  33.         print(f"API请求失败: {str(e)}")
  34.         return None
  35.     except KeyError:
  36.         print("响应格式异常")
  37.         return None
  38. # 使用示例
  39. if __name__ == "__main__":
  40.     result = generate("请用Python实现快速排序算法")
  41.     if result:
  42.         print("模型回复:\n", result)
复制代码
3. 流式输出书本(恰当长文本)

python
复制
  1. def stream_generate(prompt: str, max_tokens: int = 1024):
  2.     """流式输出版本(实时显示生成结果)"""
  3.     try:
  4.         response = requests.post(
  5.             url=f"{OLLAMA_HOST}/api/generate",
  6.             headers={"Content-Type": "application/json"},
  7.             json={
  8.                 "model": MODEL_NAME,
  9.                 "prompt": prompt,
  10.                 "stream": True,  # 启用流式输出
  11.                 "options": {"max_tokens": max_tokens}
  12.             },
  13.             stream=True
  14.         )
  15.         response.raise_for_status()
  16.         full_response = []
  17.         for line in response.iter_lines():
  18.             if line:
  19.                 chunk = json.loads(line.decode("utf-8"))
  20.                 if not chunk["done"]:
  21.                     print(chunk["response"], end="", flush=True)
  22.                     full_response.append(chunk["response"])
  23.         
  24.         return "".join(full_response)
  25.     except requests.exceptions.RequestException as e:
  26.         print(f"\n请求失败: {str(e)}")
  27.         return None
  28. # 使用示例
  29. stream_generate("请详细解释量子计算的原理")
复制代码
4. 参数分析

参数分析max_tokens控制天生文本的最大长度(发起 512-4096)temperature控制天生随机性(0-1,值越大输出越随机)top_p核采样概率(0-1,通常与 temperature 二选一)stream是否启用流式传输(恰当长文本场景)5. 常见题目处置惩罚

Q1: 出现毗连错误
python
复制
  1. # 检查服务是否运行
  2. import subprocess
  3. subprocess.run(["ollama", "serve"], check=True)
复制代码
Q2: 模子不存在错误
bash
复制
  1. # 查看可用模型列表
  2. ollama list
复制代码
Q3: 调解性能参数
python
复制
  1. json={
  2.     "model": MODEL_NAME,
  3.     "prompt": prompt,
  4.     "options": {
  5.         "num_ctx": 4096,  # 上下文窗口大小
  6.         "num_gpu": 1,     # GPU层数(需要CUDA支持)
  7.         "main_gpu": 0,   # 主GPU索引
  8.         "seed": 42       # 随机种子
  9.     }
  10. }
复制代码
6. 高级功能

python
复制
  1. # 获取模型信息
  2. requests.get(f"{OLLAMA_HOST}/api/show", json={"name": MODEL_NAME})
  3. # 创建模型副本
  4. requests.post(f"{OLLAMA_HOST}/api/create", json={"name": "my-deepseek-copy", "modelfile": f"FROM {MODEL_NAME}"})
复制代码
发起根据实际摆设情况调解:

  •         假如服务摆设在长途服务器,修改 OLLAMA_HOST
  •         通过 ollama pull 确保模子已下载
  •         生产情况发起添加超时处置惩罚:
python
复制
  1. response = requests.post(..., timeout=(10, 30))  # 连接10秒,读取30秒超时
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表