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

【异地访问本地DeepSeek】Flask+内网穿透,轻松实现本地DeepSeek的远程访问

写在前面:本博客仅作记录学习之用,部分图片来自网络,如需引用请注明出处,同时如有侵犯您的权益,请联系删除!


文章目录

  • 前言
  • 依赖
  • Flask构建本地网页访问
    • LM Studio 开启网址访问
    • DeepSeek 调用模板
    • Flask 访问本地网址
    • HTML内容
    • 本地推理
  • 内网穿透访问
  • 总结
  • 互动
  • 致谢
  • 参考
  • 往期回顾


前言

在人工智能技术日新月异的今天,DeepSeek作为一款强大的大语言模型,已经在众多领域中展现出其巨大的应用潜力。然而,对于许多用户而言,在本地服务器或者电脑部署DeepSeek,异地如何访问本地资源,成为了一个值得思考的问题。

在这里插入图片描述

本文以内网穿透技术实现公网访问,以期为相关从业者或爱好者提供有价值的参考。本地部署DeepSeek,意味着用户可以在自己的服务器上运行这一大语言模型,从而在一定程度上掌控数据的隐私性和安全性。与此同时,通过内网穿透技术,用户还能将本地部署的DeepSeek实例暴露到公网上,实现远程访问和交互。不仅提高了模型的可用性,还为跨地域、跨团队的合作提供了极大的便利。

然而,本地部署和内网穿透并非没有挑战。硬件成本、维护成本、技术门槛以及安全风险等问题,都是用户在决策过程中需要考虑的关键因素。因此,本文旨在全面分析本地部署DeepSeek并通过内网穿透实现公网访问的必要性,帮助用户权衡利弊,做出最适合自己的选择。


依赖

本地部署: 【DeepSeek本地化部署保姆级教程 】

如果需要创建新环境:conda create -n deepseek python=3.7

  • Window 11
  • Flask
  • markdown2

安装: pip install Flaskpip install markdown2

Flask构建本地网页访问

LM Studio 开启网址访问

确保加载合适的模型(GGUF),然后在开发者选项中确保开启运行,并查看对应的IP和端口,此处http://127.0.0.1:1234,这个区别于OpenAI。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

DeepSeek 调用模板

DeepSeek 调用模板:首次调用 API

# Please install OpenAI SDK first: `pip3 install openai`from openai import OpenAIclient = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "system", "content": "You are a helpful assistant"},{"role": "user", "content": "Hello"},],stream=False
)print(response.choices[0].message.content)

此处提供了OpenAI的调用方式,由于需要api_key显得比较麻烦或者需要付费,因此直接和LM Studio 的本地网址进行访问。

Flask 访问本地网址

通过上述模板构建本地的API,将Flask构建的网页 的输入框的内容传入到messages中,随后将其传入到LM Studio进行推理,将返回的结果进一步展示到Flask构建的对话框中即可。下面是app.py的逻辑:

from flask import Flask, request, jsonify, render_template
import markdown2
import requestsAPI_URL = "http://localhost:1234/v1/chat/completions"headers = {"Content-Type": "application/json"
}app = Flask(__name__, template_folder='templates',)
app.static_folder = 'static'
@app.route('/')
def index():return render_template("index.html")@app.route('/process', methods=['POST'])
def process():data = request.get_json()user_input = data['input']# user_input = request.form['user_input']messages = [{"role": "system", "content": "你是一个优秀的人工智能助手"},{"role": "user", "content": f"{user_input}"},]data = {"model": "DeepSeek/7B/DeepSeek-R1-Distill-Qwen-7B-Q6_K.gguf",  # 你的 DeepSeek 模型名称"messages": messages,"stream": False  # 关闭流式输出}response = requests.post(API_URL, headers=headers, json=data)if response.status_code == 200:result = response.json()else:print("请求失败:", response.status_code, response.text)# 将用户输入和脚本输出以对话形式返回conversation = [{"user": user_input},{"script": result["choices"][0]["message"]["content"]}]markdown_text = conversation[1]["script"]html_content = markdown2.markdown(markdown_text)response_message = f"DeepSeek: {html_content}"return jsonify({'message': response_message})if __name__ == '__main__':app.run(debug=False)

调试阶段可以使用app.run(debug=True),确定后改为False。

HTML内容

HTML可以使用大模型直接输出,下面是一个示范的提示词:

你的任务是使用python、Flask创建一个网页,具体要求如下:
1. 网页需包含两个文本框,一个用于获取用户输入,另一个用于显示Python脚本的返回内容。
2. 输入框需固定于网页中底部并居中,并长度仅为网页宽度50%,发送键位于输入框的右侧,发送键实现将输入框的文本发送给脚本
3. 输出框以对话的形式进行展示,同时位于位于输入框的上方并居中,并长度仅为网页宽度50%,展示用户的输入和脚本的返回内容
4. 网页需要有背景图
5. 只需要一个html和app.py

需要注意,如果无法加载图片,将其放在static文件夹中,配合app.static_folder = 'static'使用
下面是不断调整后的一个html文件的内容:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Flask DeepSeek</title><style>body {margin: 0;font-family: Arial, sans-serif;background-image: url("../static/back.jpg");background-size: cover;background-position: center;display: flex;flex-direction: column;align-items: center;justify-content: center;height: 100vh;}.container {width: 55%;/*text-align: center;*/background-color: rgba(255, 255, 255, 0.8);padding: 20px;border-radius: 10px;box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);}.chat-box {height: 400px;overflow-y: auto;border: 1px solid #ccc;padding: 10px;margin-bottom: 10px;}.input-group {display: flex;justify-content: space-between;align-items: center;width: 100%;}.input-group input {width: calc(90% - 10px);padding: 10px;border: 1px solid #ccc;border-radius: 5px;}.input-group button {width: calc(10% - 10px);padding: 10px;border: 1px solid #ccc;border-radius: 10px;background-color: #007bff;}.input-group button:hover {background-color: #0056b3;}</style>
</head>
<body><div class="container"><div class="chat-box" id="chat-box"><!-- 聊天内容将会通过JavaScript动态添加 --></div><div class="input-group"><input type="text" id="user-input" placeholder="输入你的消息..."><button onclick="sendMessage()">发送</button></div></div><script>function appendMessage(message, isUser) {const chatBox = document.getElementById('chat-box');const messageElement = document.createElement('div');messageElement.textContent = message;messageElement.style.color = isUser ? 'blue' : 'black';messageElement.style.padding = '5px';messageElement.style.borderBottom = '1px solid #ccc';chatBox.appendChild(messageElement);chatBox.scrollTop = chatBox.scrollHeight;}function sendMessage() {const userInput = '用户:' + document.getElementById('user-input').value;if (userInput.trim() !== '') {const xhr = new XMLHttpRequest();xhr.open('POST', '/process', true);xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');xhr.onreadystatechange = function () {if (xhr.readyState === 4 && xhr.status === 200) {const response = JSON.parse(xhr.responseText);appendMessage(userInput, true);appendMessage(response.message, false);document.getElementById('user-input').value = '';}};xhr.send(JSON.stringify({ input: userInput }));}}</script>
</body>
</html>

网页的结构如下:
在这里插入图片描述

本地推理

在输入框中输入问题后发送,获取7B模型的返回值,网址:http://127.0.0.1:5000,结果如下
在这里插入图片描述

LM Studio中的记录如下:

2025-02-28 23:04:32  [INFO] 
[LM STUDIO SERVER] Running chat completion on conversation with 2 messages.
2025-02-28 23:04:33  [INFO] 
[LM STUDIO SERVER] Accumulating tokens ... (stream = false)
2025-02-28 23:05:33  [INFO] 
[LM STUDIO SERVER] [7b] Generated prediction:  {"id": "chatcmpl-cc7tk9bfa4b9gb6mhlztg","object": "chat.completion","created": 1740755072,"model": "7b","choices": [{"index": 0,"logprobs": null,"finish_reason": "stop","message": {"role": "assistant","content": "<think>\n好,我现在要介绍重庆。首先,重庆是一个直辖市,在中国南方,连接长江和嘉陵江。地理位置优越,是长江经济带的重要城市。\n\n重庆有很多景点,比如洪崖洞、解放碑、长江索道等,这些都是游客必去的地方。还有火锅和川菜非常有名,尤其是磁器口古镇里的小吃,可以品尝到地道的重庆味道。\n\n重庆的地形多样,既有 flat 的地区,也有山和江。著名的龙舟峡和武隆喀斯特地貌吸引了不少游客。\n\n重庆是一个比较开放的城市,经济繁荣,而且语言相对通用,这对于国际交流很有帮助。\n\n交通方面,重庆有便捷的高铁、地铁和轻轨系统,方便游客出行。\n\n气候温暖湿润,四季分明,适合各种活动。\n\n最后,重庆不仅是一个旅游胜地,也是一座充满活力的城市,有很多现代化的设施和文化活动。总的来说,重庆是一个值得一游的地方。\n</think>\n\n当然!重庆是中国的一个直辖市,位于中国南方,具体位置是在重庆市,地处长江与嘉陵江之间。以下是关于重庆的一些详细介绍:\n\n### 1. **地理位置**\n   - 重庆是中国南方的交通枢纽之一,连接长江和嘉陵江。\n   - 地处长江经济带中心地带,具有重要的战略地位。\n\n### 2. **景点与文化**\n   - **洪崖洞**:以吊脚楼建筑和夜景闻名,是重庆的标志性景点。\n   - **解放碑**:重庆的商业中心之一,拥有众多店铺和商业娱乐设施。\n   - **长江索道**:横跨长江的空中交通工具,提供壮丽的景色观赏。\n   - **磁器口古镇**:以美食和传统手工艺品闻名,是品尝重庆火锅和了解当地文化的好去处。\n\n### 3. **美食**\n   - 重庆火锅是中国最著名的火锅之一,以其麻辣鲜香著称。\n   - 其他特色美食包括小面、酸辣粉、毛血旺等。\n\n### 4. **地形与气候**\n   - 重庆地形多样,既有平坦的地区,也有山脉和河流。武隆喀斯特地貌是世界自然遗产之一。\n   - 气候温暖湿润,四季分明,雨量充沛。\n\n### 5. **经济与开放**\n   - 作为直辖市,重庆在西南地区的经济发展中占有重要地位。\n   - 外贸中心之一,拥有较为自由的市场准入政策。\n\n### 6. **交通**\n   - 运输系统完善,包括高铁、地铁和轻轨,方便游客出行。\n   - 公共交通发达,覆盖范围广。\n\n### 7. **语言与文化**\n   - 汉语以外的主要少数民族有苗族、汉族、土家族等,多元文化交融显著。\n\n总的来说,重庆是一个历史悠久、风景优美且充满活力的城市。无论是自然风光、美食文化还是历史遗迹,都让人流连忘返。"}}],"usage": {"prompt_tokens": 15,"completion_tokens": 601,"total_tokens": 616},"stats": {},"system_fingerprint": "7b"
}

内网穿透访问

内网穿透工具较多,此处使用花生壳为例子。

  • 登录后,选择内网穿透
    在这里插入图片描述
  • 选择添加映射
    在这里插入图片描述
  • 填写映射信息

在这里插入图片描述

  • 查看公网网址
    在这里插入图片描述

  • 公网访问
    在这里插入图片描述

总结

总结: 为了方便本地化部署后,异地调用本地模型进行推理,可以按照以下步骤操作:

  1. 基础环境:在LM Studio官网下载并运行对应的GGUF模型,以及安装对应的python包。
  2. Flask构建网页:Flask结合LM Studio的端口和HTML构建网页,实现网页对话。
  3. 内网穿透:通过花生壳将Flask所开放的端口进行映射,实现异地访问本地的模型。

互动

  • 你觉得上述内容对你有帮助吗?`

欢迎在评论区解答上述问题,分享你的经验和疑问!

当然,也欢迎一键三连给我鼓励和支持:👍点赞 📁 关注 💬评论。


致谢

欲尽善本文,因所视短浅,怎奈所书皆是瞽言蒭议。行文至此,诚向予助与余者致以谢意。


参考

[1] DeepSeek API 文档


往期回顾


👆 DeepSeek本地化部署保姆级教程👆

👆 EfficientTrain++帮你降低网络训练的成本👆

👆 PyCharm环境下Git与Gitee联动👆

👆 Ping通但SSH连接失败的解决办法👆

👆 轻量化设计如何提高模型的推理速度👆

👆 正则化与正则剪枝👆

相关文章:

【异地访问本地DeepSeek】Flask+内网穿透,轻松实现本地DeepSeek的远程访问

写在前面&#xff1a;本博客仅作记录学习之用&#xff0c;部分图片来自网络&#xff0c;如需引用请注明出处&#xff0c;同时如有侵犯您的权益&#xff0c;请联系删除&#xff01; 文章目录 前言依赖Flask构建本地网页访问LM Studio 开启网址访问DeepSeek 调用模板Flask 访问本…...

Windows对比MacOS

Windows对比MacOS 文章目录 Windows对比MacOS1-环境变量1-Windows添加环境变量示例步骤 1&#xff1a;打开环境变量设置窗口步骤 2&#xff1a;添加系统环境变量 2-Mac 系统添加环境变量示例步骤 1&#xff1a;打开终端步骤 2&#xff1a;编辑环境变量配置文件步骤 3&#xff1…...

React实现无缝滚动轮播图

实现效果&#xff1a; 由于是演示代码&#xff0c;我是直接写在了App.tsx里面在 文件位置如下&#xff1a; App.tsx代码如下&#xff1a; import { useState, useEffect, useCallback, useRef } from "react"; import { ImageContainer } from "./view/ImageC…...

Ubuntu20.04确认cuda和cudnn已经安装成功

当我们通过官网安装cuda和cudnn时&#xff0c;终端执行完命令后我们仍不能确定是否已经安装成功。接下来教大家用几句命令测试。 cuda 检测版本号 nvcc -V如果输出如下&#xff0c;则安装成功。 可以看到版本号是11.2 cudnn检测版本号 有两种命令&#xff1a;如果你的cudn…...

sqlilab 46 关(布尔、时间盲注)

sqlilabs 46关&#xff08;布尔、时间盲注&#xff09; 46关有变化了&#xff0c;需要我们输入sort&#xff0c;那我们就从sort1开始 递增测试&#xff1a; 发现测试到sort4就出现报错&#xff1a; 我们查看源码&#xff1a; 从图中可看出&#xff1a;用户输入的sort值被用于查…...

AI时代保护自己的隐私

人工智能最重要的就是数据&#xff0c;让我们面对现实&#xff0c;大多数人都不知道他们每天要向人工智能提供多少数据。你输入的每条聊天记录&#xff0c;你发出的每条语音命令&#xff0c;人工智能生成的每张图片、电子邮件和文本。我建设了一个网站(haptool.com)&#xff0c…...

模型优化之强化学习(RL)与监督微调(SFT)的区别和联系

强化学习&#xff08;RL&#xff09;与监督微调&#xff08;SFT&#xff09;是机器学习中两种重要的模型优化方法&#xff0c;它们在目标、数据依赖、应用场景及实现方式上既有联系又有区别。 想了解有关deepseek本地训练的内容可以看我的文章&#xff1a; 本地基于GGUF部署的…...

Buildroot 添加自定义模块-内置文件到文件系统

目录 概述实现步骤1. 创建包目录和文件结构2. 配置 Config.in3. 定义 cp_bin_files.mk4. 添加源文件install.shmy.conf 5. 配置与编译 概述 Buildroot 是一个高度可定制和模块化的嵌入式 Linux 构建系统&#xff0c;适用于从简单到复杂的各种嵌入式项目. buildroot的源码中bui…...

蓝牙接近开关模块感应开锁手机靠近解锁支持HID低功耗

ANS-BT101M是安朔科技推出的蓝牙接近开关模块&#xff0c;低功耗ble5.1&#xff0c;采用UART通信接口&#xff0c;实现手机自动无感连接&#xff0c;无需APP&#xff0c;人靠近车门自动开锁&#xff0c;支持苹果、安卓、鸿蒙系统&#xff0c;也可以通过手机手动开锁或上锁&…...

计算机毕业设计SpringBoot+Vue.js基于工程教育认证的计算机课程管理平台(源码+文档+PPT+讲解)

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 作者简介&#xff1a;Java领…...

企业知识库搭建:14款开源与免费系统选择

本文介绍了以下14 款知识库管理系统&#xff1a;1.Worktile&#xff1b;2.PingCode&#xff1b;3.石墨文档&#xff1b; 4. 语雀&#xff1b; 5. 有道云笔记&#xff1b; 6. Bitrix24&#xff1b; 7. Logseq等。 在如今的数字化时代&#xff0c;企业和团队面临着越来越多的信息…...

蓝桥杯(握手问题)

小蓝组织了一场算法交流会议&#xff0c;总共有 50 人参加了本次会议。在会议上&#xff0c;大家进行了握手交流。按照惯例他们每个人都要与除自己以外的其他所有人进行一次握手 (且仅有一次)。 但有 7个人&#xff0c;这 7 人彼此之间没有进行握手 (但这 7 人与除这 7 人以外…...

如何使用 Jenkins 实现 CI/CD 流水线:从零开始搭建自动化部署流程

如何使用 Jenkins 实现 CI/CD 流水线:从零开始搭建自动化部署流程 在软件开发过程中,持续集成(CI)和持续交付(CD)已经成为现代开发和运维的标准实践。随着代码的迭代越来越频繁,传统的手动部署方式不仅低效,而且容易出错。为了提高开发效率和代码质量,Jenkins作为一款…...

c++字符编码/乱码问题

基本概念 c11版本引入了char16_t和char32_t两个类型&#xff0c;他们的特点分别如下&#xff1a; char16_t 16位的unicode字符类型用于表示UTF-16编码大小&#xff1a;2字节字面量前缀&#xff1a;u char32_t 32位unicode字符类型用于表示UTF-32编码大小&#xff1a;4字节…...

侯捷 C++ 课程学习笔记:深入理解类与继承

文章目录 每日一句正能量一、课程背景二、学习内容&#xff1a;类与继承&#xff08;一&#xff09;类的基本概念1. 类的定义与实例化2. 构造函数与析构函数 &#xff08;二&#xff09;继承1. 单继承与多继承2. 虚函数与多态 三、学习心得四、总结 每日一句正能量 有种承担&am…...

初始化列表

一&#xff1a;声明&#xff0c;定义&#xff0c;赋值的区别 ①&#xff1a;声明 这里&#xff0c;int _year; int _month;int _day; 是成员变量的声明&#xff0c;它们告诉编译器&#xff1a; 类 Date中有三个成员变量_year和 _month和_day。 它们的类型分别都是 int 此…...

7.1 - 定时器之中断控制LED实验

文章目录 1 实验任务2 系统框图3 软件设计 1 实验任务 本实验任务是通过CPU私有定时器的中断&#xff0c;每 200ms 控制一次PS LED灯的亮灭。 2 系统框图 3 软件设计 注意事项&#xff1a; 定时器中断在收到中断后&#xff0c;只需清除中断状态&#xff0c;无需禁用中断、启…...

Pytest之fixture的常见用法

文章目录 1.前言2.使用fixture执行前置操作3.使用conftest共享fixture4.使用yield执行后置操作 1.前言 在pytest中&#xff0c;fixture是一个非常强大和灵活的功能&#xff0c;用于为测试函数提供固定的测试数据、测试环境或执行一些前置和后置操作等&#xff0c; 与setup和te…...

【分库分表】基于mysql+shardingSphere的分库分表技术

目录 1.什么是分库分表 2.分片方法 3.测试数据 4.shardingSphere 4.1.介绍 4.2.sharding jdbc 4.3.sharding proxy 4.4.两者之间的对比 5.留个尾巴 1.什么是分库分表 分库分表是一种场景解决方案&#xff0c;它的出现是为了解决一些场景问题的&#xff0c;哪些场景喃…...

合并两个有序链表:递归与迭代的实现分析

合并两个有序链表&#xff1a;递归与迭代的实现分析 在算法与数据结构的世界里&#xff0c;链表作为一种基本的数据结构&#xff0c;经常被用来解决各种问题。特别是对于有序链表的合并&#xff0c;既是经典面试题&#xff0c;也是提高编程能力的重要练习之一。合并两个有序链…...

HTML AI 编程助手

HTML AI 编程助手 引言 随着人工智能技术的飞速发展&#xff0c;编程领域也迎来了新的变革。HTML&#xff0c;作为网页制作的基础语言&#xff0c;与AI技术的结合&#xff0c;为开发者带来了前所未有的便利。本文将探讨HTML AI编程助手的功能、应用场景以及如何利用它提高编程…...

备战蓝桥杯Day11 DFS

DFS 1.要点 (1)朴素dfs 下面保存现场和恢复现场就是回溯法的思想&#xff0c;用dfs实现&#xff0c;而本质是用递归实现&#xff0c;代码框架: ans; //答案&#xff0c;常用全局变量表示 int mark[N]; //记录状态i是否被处理过 …...

Oracle 认证为有哪几个技术方向

Oracle 认证技术方向&#xff0c;分别是数据库管理、开发、云平台&#xff0c;每个方向都有不同的学习等级 数据库运维方向 Oracle Certified Professional&#xff08;OCP&#xff09;&#xff1a;19c OCA内容已和OCP合并 OCP 19c属于oracle认证专家&#xff0c;要求考生掌握深…...

25物理学研究生复试面试问题汇总 物理学专业知识问题很全! 物理学复试全流程攻略 物理学考研复试调剂真题汇总

正在为物理考研复试专业面试发愁的你&#xff0c;是不是不知道从哪开始准备&#xff1f; 学姐告诉你&#xff0c;其实物理考研复试并没有你想象的那么难&#xff01;只要掌握正确的备考方法&#xff0c;稳扎稳打&#xff0c;你也可以轻松拿下高分&#xff01;今天给大家准备了…...

网络安全技术与应用

文章详细介绍了网络安全及相关技术&#xff0c;分析了其中的一类应用安全问题——&#xff30;&#xff23;机的安全问题&#xff0c;给出了解决这类问题的安全技术——&#xff30;&#xff23;防火墙技术。 &#xff11; 网络安全及相关技术 自&#xff12;&#xff10;世纪…...

APISIX Dashboard上的配置操作

文章目录 登录配置路由配置消费者创建后端服务项目配置上游再创建一个路由测试 登录 http://192.168.10.101:9000/user/login?redirect%2Fdashboard 根据docker 容器里的指定端口&#xff1a; 配置路由 通过apisix 的API管理接口来创建&#xff08;此路由&#xff0c;直接…...

深度剖析数据分析职业成长阶梯

一、数据分析岗位剖析 目前&#xff0c;数据分析领域主要有以下几类岗位&#xff1a;业务数据分析师、商业数据分析师、数据运营、数据产品经理、数据工程师、数据科学家等&#xff0c;按照工作侧重点不同&#xff0c;本文将上述岗位分为偏业务和偏技术两大类&#xff0c;并对…...

HarmonyOS学习第11天:布局秘籍RelativeLayout进阶之路

布局基础&#xff1a;RelativeLayout 初印象 在 HarmonyOS 的界面开发中&#xff0c;布局是构建用户界面的关键环节&#xff0c;它决定了各个组件在屏幕上的位置和排列方式。而 RelativeLayout&#xff08;相对布局&#xff09;则是其中一种功能强大且灵活的布局方式&#xff0…...

问题修复-后端返给前端的时间展示错误

问题现象&#xff1a; 后端给前端返回的时间展示有问题。 需要按照yyyy-MM-dd HH:mm:ss 的形式展示 两种办法&#xff1a; 第一种 在实体类的属性上添加JsonFormat注解 第二种&#xff08;建议使用&#xff09; 扩展mvc框架中的消息转换器 代码&#xff1a; 因为配置类继…...

怎么排查页面响应慢的问题

一、排查流程图 -----------------| 全局监控报警触发 |-----------------|▼-----------------| 定位异常服务节点 |-----------------|------------------▼ ▼ ----------------- ----------------- | 基础设施层排查 | | 应用层代码排查 | | (网…...

第二十四:5.2【搭建 pinia 环境】axios 异步调用数据

第一步安装&#xff1a;npm install pinia 第二步&#xff1a;操作src/main.ts 改变里面的值的信息&#xff1a; <div class"count"><h2>当前求和为&#xff1a;{{ sum }}</h2><select v-model.number"n">  // .number 这里是…...

SpringBoot——生成Excel文件

在Springboot以及其他的一些项目中&#xff0c;或许我们可能需要将数据查询出来进行生成Excel文件进行数据的展示&#xff0c;或者用于进行邮箱发送进行附件添加 依赖引入 此处demo使用maven依赖进行使用 <dependency><groupId>org.apache.poi</groupId>&…...

java高级(IO流多线程)

file 递归 字符集 编码 乱码gbk&#xff0c;a我m&#xff0c;utf-8 缓冲流 冒泡排序 //冒泡排序 public static void bubbleSort(int[] arr) {int n arr.length;for (int i 0; i < n - 1; i) { // 外层循环控制排序轮数for (int j 0; j < n -i - 1; j) { // 内层循环…...

MySQL 用户权限管理深度解析:从基础到高阶实践(2000字指南)

MySQL 用户权限管理是数据库安全与运维的核心环节。无论是本地开发环境还是企业级生产环境,合理配置用户权限、理解版本差异、遵循安全规范都至关重要。本文将从 ​基础权限配置、版本差异详解、安全加固策略、高阶权限管理、故障排查​ 等多个维度展开,覆盖 MySQL 5.7、8.0 …...

【0011】HTML其他文本格式化标签详解(em标签、strong标签、b标签、i标签、sup标签、sub标签......)

如果你觉得我的文章写的不错&#xff0c;请关注我哟&#xff0c;请点赞、评论&#xff0c;收藏此文章&#xff0c;谢谢&#xff01; 本文内容体系结构如下&#xff1a; 本文旨在深入探讨HTML中其他的文本格式化标签&#xff0c;主要有<em> 标签、<strong> 标签、…...

数据虚拟化的中阶实践:从概念到实现

数据虚拟化的中阶实践:从概念到实现 在大数据时代,数据的数量、种类和来源呈现爆炸式增长,如何高效、灵活地访问和利用这些数据成为了企业面临的重要问题。数据虚拟化作为一种创新的技术,正逐渐成为解决这一难题的关键。它通过抽象化层将底层数据源与应用程序隔离,使得数…...

AI辅助学习vue第十四章

第十四章&#xff1a;技术引领与未来展望 在第十五章&#xff0c;你已经在Vue技术领域深耕许久&#xff0c;积累了丰富的经验与卓越的影响力。此时&#xff0c;你将站在行业前沿&#xff0c;引领技术走向&#xff0c;为Vue技术的未来发展开辟新道路。 1. 引领Vue技术发展方向…...

DeepEP库开源啦!DeepSeek优化GPU通信,破算力瓶颈。

在人工智能和大数据日益盛行的今天&#xff0c;算力成为了制约技术发展的关键因素之一。随着模型规模的不断扩大&#xff0c;GPU间的通信瓶颈问题日益凸显&#xff0c;成为了制约深度学习训练效率的一大难题。近日&#xff0c;DeepSeek团队开源了DeepEP库&#xff0c;旨在通过优…...

蓝桥杯web第三天

展开扇子题目&#xff0c; #box:hover #item1 { transform:rotate(-60deg); } 当悬浮在父盒子&#xff0c;子元素旋转 webkit display: -webkit-box&#xff1a;将元素设置为弹性伸缩盒子模型。-webkit-box-orient: vertical&#xff1a;设置伸缩盒子的子元素排列方…...

Gin从入门到精通 (七)文件上传和下载

文件上传和下载 1.文件上传 1.1单文件上传 在 Gin 中处理单文件上传&#xff0c;可以使用 c.FormFile 方法获取上传的文件&#xff0c;然后使用 c.SaveUploadedFile 方法保存文件。 package mainimport ("github.com/gin-gonic/gin""log" )func main()…...

【Java】Stream API

概述 Stream API ( java.util.stream) 把真正的函数式编程风格引入到Java中。这是目前为止对Java类库最好的补充&#xff0c;因为Stream API可以极大提供Java程序员的生产力&#xff0c;让程序员写出高效率、干净、简洁的代码。 Stream是Java8中处理集合的关键抽象概念&#…...

linux-Dockerfile及docker-compose.yml相关字段用途

文章目录 计算机系统5G云计算LINUX Dockerfile及docker-conpose.yml相关字段用途一、Dockerfile1、基础指令2、.高级指令3、多阶段构建指令 二、Docker-Compose.yml1、服务定义&#xff08;services&#xff09;2、高级服务配置3、网络配置 (networks)4、卷配置 (volumes)5、扩…...

基于Selenium的Python淘宝评论爬取教程

文章目录 前言1. 环境准备安装 Python&#xff1a;安装 Selenium&#xff1a;下载浏览器驱动&#xff1a; 2. 实现思路3. 代码实现4. 代码解释5. 注意事项 前言 以下是一个基于 Selenium 的 Python 淘宝评论爬取教程&#xff0c;需要注意的是&#xff0c;爬取网站数据应当遵守…...

网络空间安全(7)攻防环境搭建

一、搭建前的准备 硬件资源&#xff1a;至少需要两台计算机&#xff0c;一台作为攻击机&#xff0c;用于执行攻击操作&#xff1b;另一台作为靶机&#xff0c;作为被攻击的目标。 软件资源&#xff1a; 操作系统&#xff1a;如Windows、Linux等&#xff0c;用于安装在攻击机和…...

【Veristand】Veristand 预编写教程目录

很久没有更新&#xff0c;最近打算出一期Veristand教程&#xff0c;暂时目录列成下面这个表格&#xff0c;如果各位有关心的遗漏的点&#xff0c;可以在评论区提问&#xff0c;我后期可以考虑添加进去&#xff0c;但是提前声明&#xff0c;太过小众的点我不会&#xff0c;欢迎各…...

大白话页面加载速度,如何优化提升?

大白话页面加载速度&#xff0c;如何优化提升&#xff1f; 咱来好好唠唠页面加载速度这事儿&#xff0c;再说说怎么把它提上去。 页面加载速度是咋回事儿 页面加载速度啊&#xff0c;就好比你去餐厅吃饭&#xff0c;从你坐下点餐到饭菜端上桌的时间。在网页里&#xff0c;就…...

PyCharm 环境配置精髓:打造高效 Python 开发的基石

PyCharm 环境配置精髓:打造高效 Python 开发的基石 在现代软件开发的浪潮中,Python 语言以其简洁、高效和强大的生态系统,成为了众多开发者和企业的首选。而 PyCharm,作为 JetBrains 倾力打造的专业 Python IDE,更是凭借其智能的代码辅助、强大的调试功能和丰富的插件生态…...

通过百度构建一个智能体

通过百度构建一个智能体 直接可用,我不吝啬算力 首先部署一个模型,我们选用deepseek14 构建智能体思考步骤,甚至多智能体; from openai import OpenAIclass Agent:def __init__(self, api_key, base_url, model...

【Maui】自定义统一色彩样式

文章目录 前言一、问题描述二、解决方案三、软件开发&#xff08;源码&#xff09;3.1 消息扩展库3.2 样式的使用 四、项目展示 前言 .NET 多平台应用 UI (.NET MAUI) 是一个跨平台框架&#xff0c;用于使用 C# 和 XAML 创建本机移动和桌面应用。 使用 .NET MAUI&#xff0c;可…...

Swan 表达式 - 选择表达式

ANSYS Swan 表达式支持选择(selection)表达式 case, if/then/else。选择表达式根据特定的条件选择不同的分支流。 if/then/else 表达式 if/then/else 表达式的文法如下 if expr then expr else expr 其中&#xff0c;首个expr 的布尔表达式&#xff0c;若其为 true, 则返回 …...