马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
以下是利用 Python 调用摆设在 Ollama 上的 DeepSeek 模子的步调:
1. 安装依赖
bash
复制2. 底子调用代码
python
复制- import requests
- import json
- # 配置信息
- OLLAMA_HOST = "http://localhost:11434" # 默认地址
- MODEL_NAME = "deepseek-chat" # 确认模型名称(通过 ollama list 查看)
- def generate(prompt: str, max_tokens: int = 512, temperature: float = 0.7):
- """
- 调用 DeepSeek 模型生成文本
-
- 参数:
- prompt: 输入的提示文本
- max_tokens: 最大生成token数(默认512)
- temperature: 温度参数(0-1,默认0.7)
- """
- try:
- response = requests.post(
- url=f"{OLLAMA_HOST}/api/generate",
- headers={"Content-Type": "application/json"},
- json={
- "model": MODEL_NAME,
- "prompt": prompt,
- "stream": False, # 关闭流式输出
- "options": {
- "temperature": temperature,
- "max_tokens": max_tokens
- }
- }
- )
- response.raise_for_status() # 检查HTTP错误
- return json.loads(response.text)["response"]
-
- except requests.exceptions.RequestException as e:
- print(f"API请求失败: {str(e)}")
- return None
- except KeyError:
- print("响应格式异常")
- return None
- # 使用示例
- if __name__ == "__main__":
- result = generate("请用Python实现快速排序算法")
- if result:
- print("模型回复:\n", result)
复制代码 3. 流式输出书本(恰当长文本)
python
复制- def stream_generate(prompt: str, max_tokens: int = 1024):
- """流式输出版本(实时显示生成结果)"""
- try:
- response = requests.post(
- url=f"{OLLAMA_HOST}/api/generate",
- headers={"Content-Type": "application/json"},
- json={
- "model": MODEL_NAME,
- "prompt": prompt,
- "stream": True, # 启用流式输出
- "options": {"max_tokens": max_tokens}
- },
- stream=True
- )
- response.raise_for_status()
- full_response = []
- for line in response.iter_lines():
- if line:
- chunk = json.loads(line.decode("utf-8"))
- if not chunk["done"]:
- print(chunk["response"], end="", flush=True)
- full_response.append(chunk["response"])
-
- return "".join(full_response)
- except requests.exceptions.RequestException as e:
- print(f"\n请求失败: {str(e)}")
- return None
- # 使用示例
- stream_generate("请详细解释量子计算的原理")
复制代码 4. 参数分析
参数分析max_tokens控制天生文本的最大长度(发起 512-4096)temperature控制天生随机性(0-1,值越大输出越随机)top_p核采样概率(0-1,通常与 temperature 二选一)stream是否启用流式传输(恰当长文本场景)5. 常见题目处置惩罚
Q1: 出现毗连错误
python
复制- # 检查服务是否运行
- import subprocess
- subprocess.run(["ollama", "serve"], check=True)
复制代码 Q2: 模子不存在错误
bash
复制Q3: 调解性能参数
python
复制- json={
- "model": MODEL_NAME,
- "prompt": prompt,
- "options": {
- "num_ctx": 4096, # 上下文窗口大小
- "num_gpu": 1, # GPU层数(需要CUDA支持)
- "main_gpu": 0, # 主GPU索引
- "seed": 42 # 随机种子
- }
- }
复制代码 6. 高级功能
python
复制- # 获取模型信息
- requests.get(f"{OLLAMA_HOST}/api/show", json={"name": MODEL_NAME})
- # 创建模型副本
- requests.post(f"{OLLAMA_HOST}/api/create", json={"name": "my-deepseek-copy", "modelfile": f"FROM {MODEL_NAME}"})
复制代码 发起根据实际摆设情况调解:
- 假如服务摆设在长途服务器,修改 OLLAMA_HOST
- 通过 ollama pull 确保模子已下载
- 生产情况发起添加超时处置惩罚:
python
复制- response = requests.post(..., timeout=(10, 30)) # 连接10秒,读取30秒超时
复制代码 |