当前位置: 首页 > news >正文

ai agent(智能体)开发 python3基础16:通过最基本的request,json连链接本地模型 ollama中的deepseek-r1:8b

通过 Python 调用本地 Ollama 中 deepseek-r1:8b 模型

综合了多种实现方式与最佳实践:

一. **通过 REST API 调用(推荐灵活控制)
import requests
import jsonOLLAMA_HOST = "http://localhost:11434"
MODEL_NAME = "deepseek-r1:8b"def generate(prompt: str):response = requests.post(f"{OLLAMA_HOST}/api/generate",json={"model": MODEL_NAME,"prompt": prompt,"stream": False,  # 关闭流式"options": {"temperature": 0.7, "max_tokens": 500}})return json.loads(response.text)["response"]# 调用示例
print(generate("小鸡炖蘑菇怎么做?"))

二、流式交互实现

1. **实时流式输出(适合长文本场景)
def stream_generate(prompt: str):response = requests.post(f"{OLLAMA_HOST}/api/generate",json={"model": MODEL_NAME,"prompt": prompt,"stream": True},stream=True)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)# 调用示例
stream_generate("用Python实现快速排序算法")

三、参数调优与高级配置

1. 关键参数说明
  • temperature (0-1): 控制生成随机性(0=保守,1=创造性)
  • max_tokens (默认512): 限制生成文本长度
  • num_ctx: 上下文窗口大小(建议4096)
  • num_gpu: GPU加速层数(需CUDA支持)
payload = {"model": MODEL_NAME,"prompt": "你的问题","options": {"temperature": 0.5,"max_tokens": 1024,"num_ctx": 4096,"num_gpu": 1}
}
2. 性能优化建议
# 添加超时与重试机制
response = requests.post(..., timeout=(10, 30))  # 连接10秒,读取30秒超时

四、常见问题排查

  1. 模型未找到错误

    • 执行 ollama list 确认本地已下载模型
    • 检查模型名称拼写(区分大小写)
  2. 连接失败

    • 确保 Ollama 服务已启动:ollama serve
    • 检查防火墙是否放行端口11434
  3. 内存不足

    • 降低 max_tokens
    • 使用 7b 版本替代 8b 模型

五、环境准备

  1. 安装依赖

    pip install requests  
    
  2. 模型部署验证

    ollama run deepseek-r1:8b  # 命令行测试模型是否正常运行
    

http://www.xdnf.cn/news/446725.html

相关文章:

  • 高压差分探头CMRR性能评估方法及优化策略
  • 微服务如何实现服务的高可用
  • html js 原生实现web组件、web公共组件、template模版插槽
  • 【嵌入式开发-软件定时器】
  • Java内存马的检测与发现
  • GraphPad Prism简介、安装与工作界面
  • 【软件测试】第二章·软件测试的基本概念
  • 二叉树前序与后序遍历迭代法详解:栈操作与顺序反转的巧妙结合
  • NVMe简介1
  • Android 中 图片加载库 Glide 简介
  • 【Java-EE进阶】SpringBoot针对某个IP限流问题
  • Protocol Buffers 全流程通俗讲解
  • vLLM - SamplingParams 参数
  • 【BUG】滴答定时器的时间片轮询与延时冲突
  • 力扣热题——找出 3 位偶数
  • 康谋分享 | 自动驾驶仿真进入“标准时代”:aiSim全面对接ASAM OpenX
  • C++类和对象--高阶
  • 猫眼浏览器:简约安全,极速浏览
  • 基于多目标进化算法的神经网络架构搜索及其高级可视化技术
  • Huffman树
  • 常用的Java工具库
  • 错误: 加载主类 org.springframework.boot.loader.launch.JarLauncher 时出现 LinkageError
  • 鸿蒙Next API17新特性学习之如何使用新增鼠标轴事件
  • 蚂蚁seo强引蜘蛛池,SEO优化的利器
  • 【Linux笔记】——进程信号的捕捉——从中断聊聊OS是怎么“活起来”的
  • Kotlin Compose 与传统 Android UI 开发对比
  • LabVIEW在电子电工教学中的应用
  • Python 之 selenium 打开浏览器指定端口进行接续操作
  • Nginx+Lua 实战避坑:从模块加载失败到版本冲突的深度剖析
  • 数字信号处理-大实验1.1