deepseek本地调用
目录
1.介绍
2.开始调用
2.1模型检验
2.2 通过url调用
3.总结
1.介绍
这篇博客用来教你如何从本地调用ollama中deepseek的模型接口,直接和deepseek进行对话。
2.开始调用
2.1模型检验
首先要保证ollama已经安装到本地,并且已经下载了deepseek模型。可以使用下面的命令检验:
ollama list
2.2使用subprocess
使用subprocess
直接与模型进行对话,使用ollama
命令中的pull
或run
选项来调用模型。
import subprocessdef ollama_deepseek_conversation(prompt):try:# 通过命令行使用 ollama run deepseek-r1:7b 模型,注意这里的模型名字,可以使用ollama list可以看见模型名字result = subprocess.run(['ollama', 'run', 'deepseek-r1:7b'], input=prompt,stdout=subprocess.PIPE, text=True)# 获取模型响应并返回return result.stdout.strip()except Exception as e:return f"Error occurred: {e}"if __name__ == "__main__":print("开始对话,输入'quit'退出")while True:# 获取用户输入user_input = input("你: ")if user_input.lower() == 'quit':print("对话结束")break# 调用deepseek模型获取响应response = ollama_deepseek_conversation(user_input)print(f"deepseek: {response}")
2.2 通过url调用
1.创建一个本地的服务来将命令行调用转化为 REST API 请求
from flask import Flask, request, jsonify
import subprocessapp = Flask(__name__)# 定义一个路由来处理POST请求
@app.route('/deepseek', methods=['POST'])
def deepseek_conversation():data = request.get_json() # 获取用户的 JSON 输入prompt = data.get('prompt', '') # 从 JSON 中获取 'prompt'try:# 运行 ollama 命令并将用户输入传给 deepseek-r1:7bresult = subprocess.run(['ollama', 'run', 'deepseek-r1:7b'], input=prompt,stdout=subprocess.PIPE, text=True)# 获取模型的响应response = result.stdout.strip()return jsonify({"response": response}) # 返回 JSON 格式的响应except Exception as e:return jsonify({"error": str(e)}), 500 # 捕获错误并返回500状态码if __name__ == "__main__":app.run(host="0.0.0.0", port=5000) # 启动 Flask 服务,监听5000端口
2.使用 requests
库来向这个本地服务发送 HTTP 请求,并获得 deepseek 模型的响应。
import requestsdef ollama_deepseek_conversation(prompt):try:url = "http://localhost:5000/deepseek" # Flask API 地址response = requests.post(url, json={"prompt": prompt}) # 发送 POST 请求if response.status_code == 200:return response.json().get("response", "无响应") # 解析返回的 JSON 数据else:return f"Error: {response.status_code} {response.text}"except Exception as e:return f"Error occurred: {e}"if __name__ == "__main__":print("开始对话,输入'quit'退出")while True:user_input = input("你: ")if user_input.lower() == 'quit':print("对话结束")break# 调用 deepseek 模型并获取响应response = ollama_deepseek_conversation(user_input)print(f"deepseek: {response}")
3.总结
和deepseek对话,可行的方式不仅仅只有命令窗口或webui等等,还可以使用url调用,这样一来,你就可以使用一些硬件接入deepseek(例如使用ESP32接入自己的本地deepseek制作一个本地聊天机器人)。
希望这一片博客可以为你的思路提供新的参考。
相关文章:

deepseek本地调用
目录 1.介绍 2.开始调用 2.1模型检验 2.2 通过url调用 3.总结 1.介绍 这篇博客用来教你如何从本地调用ollama中deepseek的模型接口,直接和deepseek进行对话。 2.开始调用 2.1模型检验 首先要保证ollama已经安装到本地,并且已经下载了deepseek模型…...

文件同步工具哪家强?FreeFileSync 免费无限制
FreeFileSync 是一款备受推崇的开源文件同步与备份软件,凭借其卓越的功能和简洁直观的界面,赢得了全球用户的青睐。该软件不仅支持跨平台操作,兼容 Windows、macOS 和 Linux 系统,还能帮助用户在不同设备之间无缝同步文件…...

捷米特 JM - RTU - TCP 网关应用 F - net 协议转 Modbus TCP 实现电脑控制流量计
一、项目背景 在某工业生产园区的供水系统中,为了精确监测和控制各个生产环节的用水流量,需要对分布在不同区域的多个流量计进行集中管理。这些流量计原本采用 F - net 协议进行数据传输,但园区的监控系统基于 Modbus TCP 协议进行数据交互&…...

Coze扣子怎么使用更强大doubao1.5模型
最近,豆包刚刚发布了最新的doubao1.5系列模型,并且加量不加价。 在性能极大进步的情况下,价格还与之前一致。真是业界良心了。 在同样的价格下,肯定要使用性能更强大的模型嘛 于是我准备把所有的智能体和工作流切换到doubao1.5…...
layui 远程搜索下拉选择组件(多选)
模板使用(lay-module/searchSelect),依赖于 jquery、layui.dist 中的 dropdown 模块实现(所以data 格式请参照 layui文档) <link rel"stylesheet" href"layui-v2.5.6/dist/css/layui.css" /&g…...

嵌入式学习(18)---Linux文件编程中的进程
一、进程的概念 进程:(用来描述 程序动态执行的过程,方便操作系统管理的) 进行中的程序 程序的一次执行过程 (内存 CPU) 程序的实例 程序 ----加载到内存----> 进程 应用场景: 实现并发 同一时刻 同时发生 并行 …...

一.AI大模型开发-初识机器学习
机器学习基本概念 前言 本文主要介绍了深度学习基础,包括机器学习、深度学习的概念,机器学习的两种典型任务分类任务和回归任务,机器学习中的基础名词解释以及模型训练的基本流程等。 一.认识机器学习 1.人工智能和机器学习 人工智能&am…...
RoCE和 TCP的区别
RoCE(RDMA over Converged Ethernet)和 TCP(Transmission Control Protocol)都是用于数据传输的协议,但它们在多个方面存在显著区别,以下为你详细介绍: 设计目标 RoCE:主要设计目标…...

勒索病毒攻击:如何应对和恢复
近年来,勒索病毒(Ransomware)已经成为全球信息安全领域最具破坏力的威胁之一。无论是个人用户,还是大中型企业,甚至政府机构,勒索病毒的攻击频率和破坏性日益增加。2020年及2021年,勒索病毒攻击不仅数量激增,且其攻击手法、目标和传播方式也变得更加复杂、精密和具有针…...
解决MySQL错误:You can‘t specify target table ‘xxx‘ for update in FROM clause
目录 错误复现场景原因分析解决方案方法1:使用派生表(推荐)方法2:改用JOIN操作方法3:使用临时表 总结 在编写MySQL的UPDATE或DELETE语句时,如果子查询中直接引用了要操作的目标表,可能会遇到一个…...
在Linux上安装和使用Docker
在Linux上安装和使用Docker:一步步指南 Docker是一种流行的容器化平台,它可以帮助开发者轻松构建、部署和运行应用程序。在本文中,我们将介绍如何在Linux系统上安装Docker,并提供一些常用的Docker命令和使用说明。 1. 安装Docke…...

【Git】四、标签管理
文章目录 Ⅰ. 理解标签Ⅱ. 创建标签① 轻量级标签② 含附注类标签 Ⅲ. 操作标签 Ⅰ. 理解标签 标签 tag ,可以简单的理解为是 对某次 commit 的一个标识,相当于起了一个别名。例如,在项目发布某个版本的时候,针对最后一次 com…...

elementui中aria-hidden报错
浏览器检查的原因,不影响功能,但会在控制台报红 解决办法: 在对应元素设置display:none .el-radio__original {display: none !important;}...

DeepSeek 助力 Vue 开发:打造丝滑的表单验证(Form Validation)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...

【MySQL】简单掌握数据类型与表操作,让数据库性能飞跃
个人主页:♡喜欢做梦 欢迎 👍点赞 ➕关注 ❤️收藏 💬评论 目录 🌳一、数据类型 🍃1.数值类型 🍂整型类型 🍂浮点型类型 🍂定点数类型 🍃2.字符串类型 3.&am…...

JUC并发编程——Java线程(一)
文章目录 1. 线程的创建1.1 方法1: 直接使用Thread1.2 方法2:使用Runnable配合Thread1.3 方法3:FutureTask配合Thread 2. 线程运行2.1 原理2.2 常见方法2.2.1 start与run2.2.2 sleep与yield2.2.3 join2.2.4 interrupt 3. 主线程和守护线程4. …...

Python入门笔记3
ros小车亚博官网例子延时性基本上跑完了,发现自己一些基础Python语法还不熟悉。 本节学习循环: while\for\break\continue 1. while 循环 while 循环会在条件表达式为真时,重复执行一段代码块,直到条件表达式变为假。 格式&am…...
【SQL教程|07】sql中条件查询where用法示例
SQL WHERE 条件查询教程 在SQL中,WHERE 条件用于在 SELECT 语句后过滤结果集,只返回符合条件的记录。它帮助我们从大量数据中提取所需的信息。以下是使用 WHERE 条件的逐步指南。 1. 基本语法 SELECT [字段] FROM [表] WHERE [条件];SELECT:…...

项目实战(13)-双频RFID语音播报阅读器
一. 产品简介: 1、项目背景是在实际应用中需要读取射频标签ID,但是市面上这种标签类型不统一;有的频段是125KHz,高频的是13.56MHz。所以需要一个读卡模块实现这两种卡的识别读取。 2、板子核心处理器是STM32F407,显示…...
基本控制环节的幅频和相频特性
基本控制环节的幅频和相频特性 在控制系统中,不同类型的控制环节具有各自独特的动态特性。为了研究这些环节对信号的影响,通常需要分析其频率响应特性,即幅频特性和相频特性。以下对几种常见的基本控制环节进行逐一分析。 1. 比例环节 比例…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...

蓝桥杯3498 01串的熵
问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798, 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)
本期内容并不是很难,相信大家会学的很愉快,当然对于有后端基础的朋友来说,本期内容更加容易了解,当然没有基础的也别担心,本期内容会详细解释有关内容 本期用到的软件:yakit(因为经过之前好多期…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

基于Java+MySQL实现(GUI)客户管理系统
客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息,对客户进行统一管理,可以把所有客户信息录入系统,进行维护和统计功能。可通过文件的方式保存相关录入数据,对…...

GO协程(Goroutine)问题总结
在使用Go语言来编写代码时,遇到的一些问题总结一下 [参考文档]:https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现: 今天在看到这个教程的时候,在自己的电…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...