Python使用Flask结合DeepSeek开发
一、背景
我之前关于DeepSeek使用ollama部署的文章大家可以把DeepSeek大模型部署起来。那么ollama还提供了可以调用对应部署模型的API接口。我们可以基于这些接口,做自己的二次开发。使用python+flask+ollama就可以进行模型对话调用。并且前端采用SSE的技术,后端向前端推送推理结果进行展示,可以实现属于自己的大模型对话产品。
二、代码实现
1、ollama运行deepseek-r1:1.5b模型
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollamadocker exec -it ollama ollama run deepseek-r1:1.5b
2、python+flask代码
import jsonfrom flask import Flask, request, Response
from ollama import Clientapp = Flask(__name__)# ollama客户端
ollma_url = "http://localhost:11434" # localhost可以换成你部署ollama主机的ip、远程ip
ollama_client = Client(host=ollma_url )
# 模型名称
model_name = "deepseek-r1:1.5b"@app.route('/stream', methods=['POST', 'GET'])
def post_example():def generate():try:# 调用ollama客户端,传入模型名称、提问信息response_generator = ollama_client.generate(model_name, prompt=question, stream=True)for part in response_generator:response_text = part.response# 按照 SSE 规范格式化数据data = f"data: {json.dumps({'response': response_text})}\n\n"print(data)yield dataexcept Exception as e:error_data = f"data: {json.dumps({'error': str(e)})}\n\n"yield error_data# 接收问题, 调用模型, 使用SSE推送推理结果给前端question = request.args.get('question')resp = Response(generate(), mimetype='text/event-stream')# 设置响应头resp.headers['Cache-Control'] = 'no-cache'resp.headers['Connection'] = 'keep-alive'resp.headers['Access-Control-Allow-Origin'] = '*'return respif __name__ == '__main__':app.run(debug=True, port=8080)
3、前端代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Ask Ollama via SSE</title>
</head><body><input type="text" id="questionInput" placeholder="请输入你的问题"><button id="askButton">提问</button><pre id="answerContainer"></p><script>const questionInput = document.getElementById('questionInput');const askButton = document.getElementById('askButton');const answerContainer = document.getElementById('answerContainer');askButton.addEventListener('click', async () => {const question = questionInput.value;if (!question) {alert('请输入问题');return;}const eventSource = new EventSource(`http://localhost:8080/stream?question=${encodeURIComponent(question)}`);eventSource.onmessage = function (event) {const data = JSON.parse(event.data);const response = data.response;if (response) {const p = document.createElement('span');p.textContent = response;answerContainer.appendChild(p);}};eventSource.onerror = function (error) {console.error('EventSource failed:', error);eventSource.close();};});</script>
</body></html>
4、运行结果
页面虽然不是很美观,但是一个基本原理的demo已经搞定。剩下的就是优化界面、优化链接异常等相关逻辑。

5、SSE默认不支持POST请求
SSE默认不支持POST请求,可以找前端的一些npm包有人进行了封装,可以发送POST请求。以上的实例为了方便采用了GET请求
三、总结
有了ollama就行docker服务一样,提供了API接口,部署的模型就是类似docker已经运行的容器。 通过ollama接口,可以调用运行的模型的各种能力!
相关文章:
Python使用Flask结合DeepSeek开发
一、背景 我之前关于DeepSeek使用ollama部署的文章大家可以把DeepSeek大模型部署起来。那么ollama还提供了可以调用对应部署模型的API接口。我们可以基于这些接口,做自己的二次开发。使用pythonflaskollama就可以进行模型对话调用。并且前端采用SSE的技术࿰…...
python中的抽象类在项目中的实际应用
抽象类在项目中的实际应用主要体现在 规范代码结构、强制子类实现某些方法、提供部分通用功能,让代码更稳定、易维护。 举个例子:数据校验器 假设你在做一个 用户输入校验系统,需要支持 数字校验、字符串校验 和 邮箱校验。如果不用抽象类&…...
New Game--(单调队列)
I - New Game 有一种新的游戏,Monocarp 想要玩。这个游戏使用一副包含 n 张牌的牌堆,其中第 i 张牌上写有一个整数 a_i。 在游戏开始时,Monocarp 可以在第一轮选择牌堆中的任意一张牌。在接下来的每一轮中,Monocarp 可以选择一张…...
mapbox V3 新特性,添加下雪效果
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀前言1.1 ☘️mapboxgl.Map 地图对象…...
无人机遥感在农林信息提取中的实现方法与GIS融合制图教程
遥感技术作为一种空间大数据手段,能够从多时、多维、多地等角度,获取大量的农情数据。数据具有面状、实时、非接触、无伤检测等显著优势,是智慧农业必须采用的重要技术之一。 一:综合态势分析 1.1 研究区及作物品种分析 ÿ…...
生物发酵展与2025生物医药创新技术与应用发展论坛同期盛大举办
近日,备受瞩目的生物发酵展与2025生物医药创新技术与应用发展论坛暨展览会宣布将同期盛大举办。这一消息标志着生物科技领域两大盛会的强强联合,将为全球生物科技与医药行业带来前所未有的交流与合作机遇。 生物发酵展作为生物科技领域的知名展会&#x…...
Jenkins 配置 Git Repository 五
Jenkins 配置 Git Repository 五 这里包含了 Freestyle project 任务类型 和 Pipeline 任务类型 关于 Git 仓库的配置,如下 不同的任务类型,只是在不同的模块找到 配置 Git 仓库 找到 Git 仓库配置位置之后,所有的任务类型配置都是一样的 …...
记录阿里云CDN配置
网站接入CDN全流程,共4步!-阿里云开发者社区 1、开通阿里云CDN服务 2、添加加速域名 3、验证域名归属权 4、域名添加CDN生成的CNAME解析 按照官网描述增加。细节点: 1. 域名和泛域名区别 2.开启https,要用nginx的证书,和项…...
mapbox 从入门到精通 - 目录
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:mapbox 从入门到精通 文章目录 一、🍀总目录1.1 ☘️ mapbox基础1.2 ☘️…...
mysql中general_log日志详解
介绍 1.记录范围:这个log里面会记录MySQL所有的SQL语句,不管是查询语句,还是DML语句,还是DDL语句,还是DCL语句,这些语句统统都会被记录在general log文件中。就连我们连接和断开MySQL数据库的这些语句。 2…...
算法与数据结构:从基础到深入
1. 数组 (Array) 定义 一组连续内存空间存储的相同类型元素的集合。特点:通过下标(索引)快速访问元素,但大小固定(静态数组)或可扩展(动态数组)。 核心操作 操作时间复杂度说明访…...
基于千兆5G网关的5G急救车方案
伴随5G网络的全面建成,5G技术的低延时、高速率、广接入等优势,为各行各业都带来了新一轮技术升级。在医疗救援方面,救护车是链接病患与医院的重要纽带,得益于5G物联网的融合应用,救护车也快速向联网化、信息化、智能化…...
【C#】的WPF或是WinForm实现Ctrl+ 的快捷键组合使用
在C#中,无论是WPF还是WinForms应用程序,处理快捷键(例如 Ctrl )通常涉及检测键盘输入并执行相应的命令或方法。 WPF 实现 在WPF中,可以通过设置一个控件的 InputBindings 属性来绑定快捷键。 <Window x:Class&qu…...
c语言样式主题 清爽风格 代码色彩 keil风格 适合单片机开发GD32 STM32等 cursor或者vscode 的settings.json文件
c语言样式主题 清爽风格 代码色彩 keil风格 适合单片机开发GD32 STM32等 cursor或者vscode 的settings.json文件 如上图,是不是和keil mdk很相近。 代码色彩,简单,配合 // 设置工作台主题为 Visual Studio 2017 Light - C 主题使用…...
DeepSeek API 调用 - Spring Boot 实现
DeepSeek API 调用 - Spring Boot 实现 1. 项目依赖 在 pom.xml 中添加以下依赖: <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-webflux</artifactId></depe…...
图数据库Neo4j面试内容整理-节点(Node)
在图数据库中,节点(Node)是图结构中的基本构建块,代表实体或对象。节点通常用于存储数据模型中的主要对象,比如人、商品、地点等。在图数据库中,节点是通过标签(Label)来分类的,并且可以包含属性(Property)来描述它们的详细信息。 1. 节点的组成<...
使用verilog 实现 cordic 算法 ----- 旋转模式
1-设计流程 ● 了解cordic 算法原理,公式,模式,伸缩因子,旋转方向等,推荐以下链接视频了解 cordic 算法。哔哩哔哩-cordic算法原理讲解 ● 用matlab 或者 c 实现一遍算法 ● 在FPGA中用 verilog 实现,注意…...
2.14寒假
这几天复习的搜索把之前做过的题目看了一下。 解析:int dx[5]{0,0,1,0,-1}; 和 int dy[5]{0,1,0,-1,0};:这两个数组用于表示上下左右四个方向的偏移量,方便在 DFS 中访问相邻的元素。o 和 p 分别表示当前搜索位置的行和列。边界条件判断&…...
基于逻辑概率的语义信道容量(Semantic Channel Capacity)和语义压缩理论(Semantic Compression Theory)
基于逻辑概率的语义信道容量(Semantic Channel Capacity)和语义压缩理论(Semantic Compression Theory)是语义通信(Semantic Communication, SemCom)的核心研究方向,它们旨在优化通信效率&#…...
DeepSeek R1本地部署教程
尽管许多卖课博主声称能轻松运行满血版DeepSeek R1,但满血版R1模型参数高达671B,仅模型文件就需要404GB存储空间,运行时更需要约1300GB显存。 对于没有卡的普通玩家来说,运行的条件苛刻,且门槛极高。基于此࿰…...
PawForge AI:基于工作流引擎的AI应用开发框架实战解析
1. 项目概述与核心价值最近在AI应用开发圈子里,一个名为“PawForge AI”的项目引起了我的注意。这个项目来自一个名为“NYX-305Parad0xLabs”的组织,名字本身就透着一股神秘感和技术范儿。作为一个长期在AI工具链和自动化流程领域摸爬滚打的从业者&#…...
RWKV Runner:一站式桌面应用,轻松部署与集成开源大语言模型
1. 项目概述:RWKV Runner,一个让大模型触手可及的“全能管家”如果你对开源大语言模型(LLM)感兴趣,尤其是对那个以“RNN架构”和“Transformer级性能”而闻名的RWKV模型系列有所耳闻,但又被繁琐的环境配置、…...
AI伦理框架实战:IEEE与WEF双轨制如何指导负责任的AI系统开发
1. 项目概述:为什么我们需要在AI项目中嵌入伦理框架?最近几年,AI项目从实验室走向了千家万户和各行各业。作为一名从业者,我亲眼见证了从“能用就行”到“必须好用且安全”的观念转变。早期我们更关注模型的准确率、响应速度&…...
CANN/社区安全发布指南
版本发布网络安全质量要求 【免费下载链接】community 本项目是CANN开源社区的核心管理仓库,包含社区的治理章程、治理组织、通用操作指引及流程规范等基础信息 项目地址: https://gitcode.com/cann/community 为保障版本网络安全质量,版本发布前…...
以为再也见不到那些文件了…” 客户差点哭出来,结果数据全回来了
数据恢复常见误区与故障排查:从文件误删到硬盘异响的技术分析摘要: 在日常使用中,数据丢失常以不同形式出现——系统崩溃无法开机、硬盘发出异响、文件误删后清空回收站、服务器RAID阵列突然离线。许多用户在故障发生时因错误操作导致恢复难度…...
基于AI与事件驱动的智能安全运维系统设计与实践
1. 项目概述:一个能自己“思考”并封禁IP的SOC如果你是一名运维或者安全工程师,每天盯着海量的网络日志,手动分析、判断、然后去防火墙加一条条黑名单规则,这种重复且耗时的“救火”工作一定让你头疼不已。NetOps-AI这个项目&…...
2026.5.9-要闻
百度首页 设备学院 宝马车提回不久,男子打开引擎盖里面竟有一窝猫!4S店:交付前检测洗车均未发现异常,愿提供检查与关怀补偿,不符合退车或换车的标准 钱江晚报 2026-05-09 11:03钱江晚报官方账号 已关注 钱江晚报 “刚提的宝马车,回家后不久打开引擎盖,里面居然藏…...
CANN/pto-isa库开发者规则与限制
This file lists some rules and limitations on the implementation of this library for pto-isa developers. 【免费下载链接】pto-isa Parallel Tile Operation (PTO) is a virtual instruction set architecture designed by Ascend CANN, focusing on tile-level operati…...
医疗AI公平性挑战:破解非洲部署中的数据偏见与技术鸿沟
1. 项目概述:当AI遇见非洲医疗,公平性为何成为一道必答题?如果你关注过全球医疗科技的前沿,一定会对人工智能(AI)在影像诊断、药物研发和个性化治疗中展现的潜力感到兴奋。但当我们把目光投向非洲大陆&…...
AI驱动城市碳排放报告成熟度模型:从数据治理到智能决策
1. 项目概述:从数据迷雾到决策地图最近和几个在环保部门、城市规划院工作的朋友聊天,大家不约而同地提到一个共同的痛点:城市碳排放报告。听起来是个挺“高大上”的活儿,但实际做起来,往往是“数据靠估、报告靠凑、决策…...
