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

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命令中的pullrun选项来调用模型。

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 系统,还能帮助用户在不同设备之间无缝同步文件&#xf…...

捷米特 JM - RTU - TCP 网关应用 F - net 协议转 Modbus TCP 实现电脑控制流量计

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

Coze扣子怎么使用更强大doubao1.5模型

最近,豆包刚刚发布了最新的doubao1.5系列模型,并且加量不加价。 在性能极大进步的情况下,价格还与之前一致。真是业界良心了。 在同样的价格下,肯定要使用性能更强大的模型嘛 于是我准备把所有的智能体和工作流切换到doubao1.5…...

layui 远程搜索下拉选择组件(多选)

模板使用&#xff08;lay-module/searchSelect&#xff09;&#xff0c;依赖于 jquery、layui.dist 中的 dropdown 模块实现&#xff08;所以data 格式请参照 layui文档&#xff09; <link rel"stylesheet" href"layui-v2.5.6/dist/css/layui.css" /&g…...

嵌入式学习(18)---Linux文件编程中的进程

一、进程的概念 进程:(用来描述 程序动态执行的过程&#xff0c;方便操作系统管理的) 进行中的程序 程序的一次执行过程 (内存 CPU) 程序的实例 程序 ----加载到内存----> 进程 应用场景: 实现并发 同一时刻 同时发生 并行 …...

一.AI大模型开发-初识机器学习

机器学习基本概念 前言 本文主要介绍了深度学习基础&#xff0c;包括机器学习、深度学习的概念&#xff0c;机器学习的两种典型任务分类任务和回归任务&#xff0c;机器学习中的基础名词解释以及模型训练的基本流程等。 一.认识机器学习 1.人工智能和机器学习 人工智能&am…...

RoCE和 TCP的区别

RoCE&#xff08;RDMA over Converged Ethernet&#xff09;和 TCP&#xff08;Transmission Control Protocol&#xff09;都是用于数据传输的协议&#xff0c;但它们在多个方面存在显著区别&#xff0c;以下为你详细介绍&#xff1a; 设计目标 RoCE&#xff1a;主要设计目标…...

勒索病毒攻击:如何应对和恢复

近年来,勒索病毒(Ransomware)已经成为全球信息安全领域最具破坏力的威胁之一。无论是个人用户,还是大中型企业,甚至政府机构,勒索病毒的攻击频率和破坏性日益增加。2020年及2021年,勒索病毒攻击不仅数量激增,且其攻击手法、目标和传播方式也变得更加复杂、精密和具有针…...

解决MySQL错误:You can‘t specify target table ‘xxx‘ for update in FROM clause

目录 错误复现场景原因分析解决方案方法1&#xff1a;使用派生表&#xff08;推荐&#xff09;方法2&#xff1a;改用JOIN操作方法3&#xff1a;使用临时表 总结 在编写MySQL的UPDATE或DELETE语句时&#xff0c;如果子查询中直接引用了要操作的目标表&#xff0c;可能会遇到一个…...

在Linux上安装和使用Docker

在Linux上安装和使用Docker&#xff1a;一步步指南 Docker是一种流行的容器化平台&#xff0c;它可以帮助开发者轻松构建、部署和运行应用程序。在本文中&#xff0c;我们将介绍如何在Linux系统上安装Docker&#xff0c;并提供一些常用的Docker命令和使用说明。 1. 安装Docke…...

【Git】四、标签管理

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

elementui中aria-hidden报错

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

DeepSeek 助力 Vue 开发:打造丝滑的表单验证(Form Validation)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…...

【MySQL】简单掌握数据类型与表操作,让数据库性能飞跃

个人主页&#xff1a;♡喜欢做梦 欢迎 &#x1f44d;点赞 ➕关注 ❤️收藏 &#x1f4ac;评论 目录 &#x1f333;一、数据类型 &#x1f343;1.数值类型 &#x1f342;整型类型 &#x1f342;浮点型类型 &#x1f342;定点数类型 &#x1f343;2.字符串类型 3.&am…...

JUC并发编程——Java线程(一)

文章目录 1. 线程的创建1.1 方法1&#xff1a; 直接使用Thread1.2 方法2&#xff1a;使用Runnable配合Thread1.3 方法3&#xff1a;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小车亚博官网例子延时性基本上跑完了&#xff0c;发现自己一些基础Python语法还不熟悉。 本节学习循环&#xff1a; while\for\break\continue 1. while 循环 while 循环会在条件表达式为真时&#xff0c;重复执行一段代码块&#xff0c;直到条件表达式变为假。 格式&am…...

【SQL教程|07】sql中条件查询where用法示例

SQL WHERE 条件查询教程 在SQL中&#xff0c;WHERE 条件用于在 SELECT 语句后过滤结果集&#xff0c;只返回符合条件的记录。它帮助我们从大量数据中提取所需的信息。以下是使用 WHERE 条件的逐步指南。 1. 基本语法 SELECT [字段] FROM [表] WHERE [条件];SELECT&#xff1a…...

项目实战(13)-双频RFID语音播报阅读器

一. 产品简介&#xff1a; 1、项目背景是在实际应用中需要读取射频标签ID&#xff0c;但是市面上这种标签类型不统一&#xff1b;有的频段是125KHz&#xff0c;高频的是13.56MHz。所以需要一个读卡模块实现这两种卡的识别读取。 2、板子核心处理器是STM32F407&#xff0c;显示…...

基本控制环节的幅频和相频特性

基本控制环节的幅频和相频特性 在控制系统中&#xff0c;不同类型的控制环节具有各自独特的动态特性。为了研究这些环节对信号的影响&#xff0c;通常需要分析其频率响应特性&#xff0c;即幅频特性和相频特性。以下对几种常见的基本控制环节进行逐一分析。 1. 比例环节 比例…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

蓝桥杯3498 01串的熵

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

零基础在实践中学习网络安全-皮卡丘靶场(第九期-Unsafe Fileupload模块)(yakit方式)

本期内容并不是很难&#xff0c;相信大家会学的很愉快&#xff0c;当然对于有后端基础的朋友来说&#xff0c;本期内容更加容易了解&#xff0c;当然没有基础的也别担心&#xff0c;本期内容会详细解释有关内容 本期用到的软件&#xff1a;yakit&#xff08;因为经过之前好多期…...

HDFS分布式存储 zookeeper

hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架&#xff0c;允许使用简单的变成模型跨计算机对大型集群进行分布式处理&#xff08;1.海量的数据存储 2.海量数据的计算&#xff09;Hadoop核心组件 hdfs&#xff08;分布式文件存储系统&#xff09;&a…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数&#xff08;函数作为参数、返回值&#xff09; 三、匿名函数与闭包1. 匿名函数&#xff08;Lambda函…...

基于Java+MySQL实现(GUI)客户管理系统

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

GO协程(Goroutine)问题总结

在使用Go语言来编写代码时&#xff0c;遇到的一些问题总结一下 [参考文档]&#xff1a;https://www.topgoer.com/%E5%B9%B6%E5%8F%91%E7%BC%96%E7%A8%8B/goroutine.html 1. main()函数默认的Goroutine 场景再现&#xff1a; 今天在看到这个教程的时候&#xff0c;在自己的电…...

uniapp 字符包含的相关方法

在uniapp中&#xff0c;如果你想检查一个字符串是否包含另一个子字符串&#xff0c;你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的&#xff0c;但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...