基于大模型与异步技术的股票分析系统实现
在金融量化分析领域,高效的数据获取与智能的策略决策是核心竞争力。本文结合异步数据抓取技术与大模型工具集成,构建一套完整的股票分析系统,实现从海量数据采集到智能信息查询的全流程自动化。
一、量化分析的数据基石:异步高效数据抓取
1. 量化策略对数据的核心需求
量化交易策略通过将人类交易经验转化为程序逻辑,依赖海量历史数据克服人性弱点(如追涨杀跌)。例如,分析股票日K线数据时,需获取数千只A股的历史行情,传统同步抓取效率低下,无法满足实时策略迭代需求。
2. 异步技术提升数据抓取效率
利用Python的asyncio
库实现多协程并发抓取,将同步I/O操作(如网络请求)转换为异步任务,显著降低开销。核心实现代码如下:
完整异步抓取模块(async_data_fetcher.py
)
import asyncio
import pandas as pd
import akshare as ak# 异步加载单只股票数据
async def load_single_stock(symbol: str, start_date: str, end_date: str) -> pd.DataFrame:loop = asyncio.get_running_loop()# 将同步API放入线程池执行,避免阻塞事件循环df = await loop.run_in_executor(None,lambda: ak.stock_zh_a_hist(symbol=symbol,period="daily",start_date=start_date,end_date=end_date,adjust="qfq"))# 数据清洗:删除无效列df = df[['日期', '开盘', '最高', '最低', '收盘', '成交量']]df.rename(columns={'日期': 'date', '开盘': 'open', '最高': 'high','最低': 'low', '收盘': 'close', '成交量': 'volume'}, inplace=True)df['symbol'] = symbol # 添加股票代码标识return df# 并发抓取多只股票数据
async def batch_fetch_stocks(stock_codes: list, start_date: str, end_date: str) -> pd.DataFrame:tasks = [asyncio.create_task(load_single_stock(code, start_date, end_date))for code in stock_codes]results = await asyncio.gather(*tasks)# 合并所有股票数据return pd.concat(results, ignore_index=True)# 主函数:执行抓取并保存数据
def main():stock_codes = ["sh600000", "sz000001", "sh600519"] # 浦发银行、平安银行、贵州茅台start_date, end_date = "20230101", "20250501"# 异步事件循环asyncio.run(asyncio.wait_for(batch_fetch_stocks(stock_codes, start_date, end_date),timeout=600 # 设置10分钟超时)).to_csv(f"stock_data_{start_date}_{end_date}.csv",index=False,encoding="utf-8-sig")print("数据抓取并保存完成")if __name__ == "__main__":main()
3. 效率对比与优势
异步抓取相比传统同步方式,时间开销大幅降低:
- 同步抓取:100只股票×3年数据≈300秒(每只3秒,串行执行)
- 异步抓取:100只股票×3年数据≈30秒(并发度50,耗时为单只最大耗时+调度开销)
实现10倍效率提升,满足高频数据更新需求。
二、大模型赋能:智能股票信息查询系统
1. 工具化封装:让大模型具备专业能力
通过langchain_core.tools
的@tool
装饰器,将股票查询逻辑封装为工具,供大模型调用。完整工具代码如下:
工具模块(stock_tools.py
)
from langchain_core.tools import tool
import akshare as ak
import pandas as pd@tool
def get_stock_info(code: str = "",name: str = ""
) -> str:"""根据股票代码或名称查询实时行情信息Args:code: 股票代码(格式如"sh600000",上交所;"sz000001",深交所)name: 股票名称(支持模糊查询,如"平安银行")Returns:符合条件的股票实时信息(JSON格式列表)"""# 获取全市场实时行情df = ak.stock_zh_a_spot_em()# 条件筛选filter_conditions = []if code:filter_conditions.append(df['代码'] == code)if name:filter_conditions.append(df['名称'].str.contains(name))if not filter_conditions:return "请提供股票代码或名称"result_df = df[pd.concat(filter_conditions, axis=1).any(axis=1)]return result_df[['代码', '名称', '最新价', '涨跌幅', '成交量']].to_dict(orient='records')
2. 大模型与工具的绑定与调用
模型初始化与工具绑定(llm_agent.py
)
from langgraph import DeepSeekLLM # 假设DeepSeek为自定义LLM类
from stock_tools import get_stock_info# 初始化大模型
llm = DeepSeekLLM(model_name="deepseek-1.0",temperature=0.1,max_tokens=512
)# 绑定工具
tools = [get_stock_info]
llm_with_tools = llm.bind_tools(tools)
Function Calling 执行流程
from langchain_core.messages import HumanMessage, SystemMessagedef run_llm_query(query: str):messages = [SystemMessage(content="""你是专业的股票助手,仅通过调用get_stock_info工具回答问题。工具调用格式必须为标准function call,每次最多返回1个工具调用。若工具返回空结果,需告知用户"未找到相关股票"。"""),HumanMessage(content=query)]response = llm_with_tools.invoke(messages)# 处理工具返回if response.tool_calls:tool_result = get_stock_info.invoke(response.tool_calls[0].args)return f"查询结果:{tool_result}"return response.content
3. 工作流设计:节点驱动的智能交互
通过**状态图(StateGraph)**实现条件循环控制,完整代码如下:
状态图构建模块(workflow_builder.py
)
from langgraph import StateGraph, START, END, MessagesState
from llm_agent import llm_with_tools
from stock_tools import get_stock_info# 定义节点函数
def llm_call_node(state: MessagesState):messages = state["messages"]response = llm_with_tools.invoke(messages)return {"messages": messages + [response]}def tool_execute_node(state: MessagesState):last_msg = state["messages"][-1]if not last_msg.tool_calls:return statetool = get_stock_info # 假设仅一个工具results = []for call in last_msg.tool_calls:result = tool.invoke(call.args)results.append(f"工具返回:{result}")return {"messages": state["messages"] + [SystemMessage(content="\n".join(results))]}# 条件判断函数
def should_continue(state: MessagesState) -> str:last_msg = state["messages"][-1]return "TOOL" if last_msg.tool_calls else "END"# 构建状态图
def build_workflow():builder = StateGraph(MessagesState)# 添加节点builder.add_node("LLM_CALL", llm_call_node)builder.add_node("TOOL_EXECUTE", tool_execute_node)# 添加边builder.add_edge(START, "LLM_CALL")builder.add_conditional_edges("LLM_CALL",should_continue,{"TOOL": "TOOL_EXECUTE","END": END})builder.add_edge("TOOL_EXECUTE", "LLM_CALL") # 工具执行后回到LLM节点return builder.compile()# 生成可视化流程图
def visualize_workflow(agent):graph = agent.get_graph(xray=True)graph.draw_mermaid_file("stock_agent_workflow.mmd") # 生成Mermaid脚本# 可通过在线工具(如Mermaid Live Editor)渲染为流程图
三、系统整合与效果验证
1. 完整调用示例
场景1:代码反查名称
agent = build_workflow()
query = "300750是哪只股票?"
state = {"messages": [HumanMessage(content=query)]}
result = agent.invoke(state)
# 输出:
# 工具返回:[{"代码": "300750", "名称": "宁德时代", ...}]
# 最终回答:300750是宁德时代的股票代码
场景2:批量数据分析
# 1. 获取宁德时代代码
code_query = "宁德时代的股票代码是多少?"
code_result = run_llm_query(code_query) # 返回"300750"# 2. 抓取历史数据
asyncio.run(batch_fetch_stocks(["300750"], "20230101", "20231231"
)).describe() # 输出2023年股价统计特征
2. 技术架构图
四、完整项目结构
stock_analysis_system/
├─ data/ # 数据存储
│ ├─ stock_data_2023-2025.csv
├─ src/ # 核心代码
│ ├─ async_data_fetcher.py # 异步数据抓取
│ ├─ stock_tools.py # 工具定义
│ ├─ llm_agent.py # 大模型交互
│ ├─ workflow_builder.py # 状态图构建
├─ utils/ # 辅助工具
│ ├─ visualization.py # 流程图生成
├─ tests/ # 测试用例
│ ├─ test_fetcher.py
│ ├─ test_llm.py
├─ requirements.txt # 依赖清单
│ akshare==1.4.7
│ langchain-core==0.2.0
│ pandas==2.1.3
五、依赖安装与运行
1. 环境配置
# 安装依赖
pip install akshare langchain-core pandas asyncio# 可选:安装绘图依赖(用于状态图可视化)
pip install graphviz mermaid-js
2. 启动流程
- 运行异步数据抓取:
python src/async_data_fetcher.py
- 测试大模型查询:
python src/llm_agent.py "查询贵州茅台的实时股价"
- 生成工作流图:
python src/workflow_builder.py visualize
六、总结与展望
本文实现的系统通过异步IO提升数据抓取效率,通过大模型工具化扩展专业能力,通过状态图实现智能流程控制,形成完整的股票分析技术栈。未来可扩展方向:
- 模型增强:接入ChatGPT/GPT-4等更强大LLM,优化复杂问题解析能力
- 数据扩展:增加港股、美股数据接口,支持多市场分析
- 策略集成:将抓取数据直接输入量化回测框架(如Backtrader),实现“数据-策略-验证”闭环
通过技术整合,该系统可成为金融从业者的高效工具,推动数据驱动的智能投资决策落地。
说明
- 代码块使用CSDN支持的Markdown语法,可直接复制粘贴
- Mermaid流程图需在CSDN编辑器中开启「Markdown语法」并确保渲染支持
- 依赖版本可根据实际环境调整,建议使用
requirements.txt
统一管理
相关文章:
基于大模型与异步技术的股票分析系统实现
在金融量化分析领域,高效的数据获取与智能的策略决策是核心竞争力。本文结合异步数据抓取技术与大模型工具集成,构建一套完整的股票分析系统,实现从海量数据采集到智能信息查询的全流程自动化。 一、量化分析的数据基石:异步高效…...
BUCK基本原理学习总结-20250509
一、电感伏秒平衡特性 处于稳定状态的电感,开关导通时间(电流上升段)的伏秒数须与开关关断(电流下降段)时的伏秒数在数值上相等,尽管两者符号相反。这也表示,绘出电感电压对时间的曲线,导通时段曲线的面积必须等于关断时段曲线的面积。 二、BUCK的基本概念和原理 基…...
BERT类模型
1. BERT类模型是否需要处理 [CLS] 或池化? 那首先搞懂 [CLS] 和池化 (1)[CLS] 的作用 BERT 的输入格式中,每个序列的开头会添加一个特殊的 [CLS] Token(Classification Token)。它的设计初衷是为分类任务…...
Taro 编译不平不同平台小程序
Taro 提供了针对不同小程序平台的编译命令,主要通过 --type 参数指定目标平台。以下是各平台常用命令及说明: --- ### **一、核心命令格式** 1. **直接使用 taro-cli** bash taro build --type [平台类型] taro dev --type [平台类型] # 开发模式&…...
PHP框架在分布式系统中的应用!
随着互联网业务的快速发展,分布式系统因其高可用性、可扩展性和容错性成为现代应用架构的主流选择。而PHP作为一门成熟的Web开发语言,凭借其简洁的语法、丰富的框架生态和持续的性能优化,逐渐在分布式系统中崭露头角。本文将深入探讨PHP框架在…...
PCB设计实践(十三)PCB设计中差分线间距与线宽设置的深度解析
一、差分信号的基本原理与物理背景 差分信号技术通过两条等幅反相的传输线实现信号传输,其核心优势体现在电磁场耦合的对称性上。根据麦克斯韦方程组的对称解原理,两条线产生的电磁场在远场区域相互抵消,形成以下特性: 1. 共模噪…...
在 Kubernetes 中使用 Docker 实现 GPU 支持的完整方案
目录 在 Kubernetes 中使用 Docker 实现 GPU 支持的完整方案 一、背景说明 二、目标 三、环境准备 四、安装 NVIDIA Container Toolkit(nvidia-docker2) 五、配置 Docker 支持 NVIDIA Runtime 六、测试 Docker 能否使用 GPU 七、部署 Kubernetes…...
Vision Transformer(ViT)
Vision Transformer(ViT)是一种将Transformer模型应用于计算机视觉任务的创新方法,由Google Research团队在2020年提出。它打破了传统卷积神经网络(CNN)在图像处理中的主导地位,通过全局注意力机制…...
(剪映)字幕实现卡拉OK效果
三种实现方式: 一、剪映自带“模板” 二、剪映自带“动画” 三、使用蒙版特效 具体操作步骤如下 模板的方式 一、模板的方式 1.在时间线轨道区 选中文本 2.在工具栏区中的文本-->模板中选择要实现的效果,左键单击,即可实现效果&am…...
Java结构化并发深度解析:原理、设计与实践
作为Java开发者,当我们需要处理复杂的并发场景时,传统的线程和ExecutorService模型往往导致代码难以维护和调试。Java 21引入的结构化并发(Structured Concurrency)通过创新的设计理念彻底改变了这一局面。本文将深入剖析其实现原理、架构设计,并通过复杂场景案例展示其强大…...
【Linux系列】跨平台安装与配置 Vim 文本编辑器
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...
Level1.5算数运算符与赋值运算符
目录 一、算术运算符和赋值运算符 1.1算术运算符 - * / % // ** 1.2.赋值运算符 - * / % // ** 二、等比例缩小(变量火柴人案例) 三、颜色的三种表达方法取余%运算 1.颜色单词 turtle.pencolor(pink) 2.RGB颜色turtle.pe…...
基于GF域的多进制QC-LDPC误码率matlab仿真,译码采用EMS算法
目录 1.算法仿真效果 2.算法涉及理论知识概要 3.MATLAB核心程序 4.完整算法代码文件获得 1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印): 本课题实现的是四进制QC-LDPC 仿真操作步骤可参考程序配套的操作视频。 2.算…...
CentOS 7 修改锁屏时间为永不
在 CentOS 7 中,默认情况下,系统会在一定时间不活动后自动锁屏。对于某些用户来说,可能希望禁用自动锁屏功能或者将锁屏时间设置为“永不”。本文将介绍如何通过图形界面和命令行两种方式修改 CentOS 7 的锁屏时间,确保系统永不自…...
STM32-ADC模数转换器(7)
对GPIO来说,它只能读取引脚的高低电平,使用了ADC模数转化器之后,就可以对高电平和低电平之间的任意电压进行量化,最终用一个变量来表示,读取这个变量,就能得到引脚输入的具体电压是多少了。 ADC模数转化器…...
前端SSE技术详解:从入门到实战的完整指南
前端SSE技术详解:从入门到实战的完整指南 一、初识SSE:比WebSocket更轻量的选择 很多开发者第一次听说Server-Sent Events(SSE)时,都会下意识问:“这和WebSocket有什么区别?” 就像选择交通工…...
mac u盘重装mac10.15Catalina系统
我的电脑提mac2017的air 重装过程 (文件夹中间有空格时为 Install\ macOS\ Catalina 才行) (有需要的,最好做一下备份,有些东西可以及时找到配置和文件之类的, u盘制作是在mac电脑上操作的) 一、先下载系统镜像文件或自行到官方…...
8051模板移植
8051模板移植 一,新建工程文件二,Keil配置 一,新建工程文件 在工程文件下建立Driver和User 打开Keil,点击扳手选择芯片型号 出现下图情况,选择是,然后会多出一个启动文件,以后有用 二&…...
轻松制作高质量视频,实时生成神器LTX-Video重磅登场!
探索LTX-Video:实时视频生成跨越新高度 在如今这个视觉内容主导的数字时代,视频生成成为推动创意表达的关键。而今天,我们将带您深入探索LTX-Video,一个强大的开源项目,致力于通过尖端技术将视频生成提升到一个全新的…...
两个数组的交集(暴力、set、哈希)
一.题目 给定两个数组 nums1 和 nums2 ,返回 它们的 交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 示例 1: 输入:nums1 [1,2,2,1], nums2 [2,2] 输出:[2]示例 2: 输入…...
[架构之美]Spring Boot多环境5种方案实现Dev/Test/Prod环境隔离
[架构之美]Spring Boot多环境5种方案实现Dev/Test/Prod环境隔离(十六) 摘要:本文深入剖析Spring Boot多环境配置的5种实现方案,涵盖YAML分组配置、Maven Profile集成、Kubernetes适配等企业级实践,并附赠配置加密方案…...
LWIP的IP协议笔记
IP协议简介 IP协议是TCP/IP协议族的基石,它为上层提供无连接、不可靠的服务 无连接:指IP通信双方都不长久的维持对方的任何信息。这表示上层协议每次发送数据,都需要明确指出对方的IP地址 不可靠:指IP协议不能把IP数据报准确到…...
matlab介绍while函数
MATLAB 中的 while 语句介绍 在 MATLAB 中,while 语句是一种循环结构,用于在满足特定条件时反复执行一段代码块。与 for 循环不同,while 循环的执行次数是动态的,取决于循环条件是否为真。 语法 while condition% 循环体代码 e…...
每日算法刷题Day2 5.10:leetcode数组1道题3种解法,用时40min
4.LC 旋转矩阵(中等,学习) 面试题 01.07. 旋转矩阵 - 力扣(LeetCode) 思想: 法一: 额外空间数组来回赋值拷贝 法二: 1.翻转90度得到等式a[j][n-i-1]a[i][j],但是会改变a[j][n-i-1]原始值,再去看该位置变到哪一位置 分析可得,4个…...
【图书管理系统】深度讲解:图书列表展示的后端实现、高内聚低耦合的应用、前端代码讲解
1.约定前后端交互接口 [请求] /book/getListByPage [参数] currentPage1&pageSize10 [响应] 返回封装的result对象对应的Json数据 2. 整体逻辑 2.1 Controller的逻辑 (1)把接收的参数封装为PageRequest类,里面有属性:curren…...
本地大模型工具深度评测:LM Studio vs Ollama,开发者选型指南
引言 在大语言模型本地化部署的技术浪潮中,隐私保护与成本优化成为核心诉求。LM Studio与Ollama作为两款明星级本地大模型工具,凭借对开源模型的支持能力,成为开发者关注的焦点。本文将从技术架构、应用场景、实操体验三个维度展开深度对比&a…...
天线的PCB设计
目录 天线模块设计的重要性 天线模块的PCB设计 天线模块设计的重要性 当智能手表突然断连、无人机信号飘忽不定——你可能正在经历一场来自天线模块的"无声抗议"。这个隐藏在电子设备深处的关键组件,就像数字世界的隐形信使,用毫米级的精密结…...
《P1226 【模板】快速幂》
题目描述 给你三个整数 a,b,p,求 abmodp。 输入格式 输入只有一行三个整数,分别代表 a,b,p。 输出格式 输出一行一个字符串 a^b mod ps,其中 a,b,p 分别为题目给定的值, s 为运算结果。 输入输出样例 输入 #1复制 2 10 9输…...
推荐一款免费开源工程项目管理系统软件,根据工程项目全过程管理流程开发的OA 办公系统
在当今的工程项目管理领域,许多企业和团队面临着诸多难题。传统的管理方式往往依赖于人工记录和分散的工具,导致项目进度难以实时把控,任务分配不够清晰,合同管理混乱,事件提醒不及时,财务管理缺乏系统性&a…...
AZScreenRecorder最新版:功能强大、操作简便的手机录屏软件
AZScreenRecorder最新版是一款功能强大的手机录屏软件,专为安卓设备设计。它无需ROOT权限,支持无限录制时长,操作简单,录制过程中可以随时暂停,满足不同用户的个性化录屏需求。此外,用户还可以自定义分辨率…...
[sklearn机器学习概述]机器学习-part3
获取数据、数据处理、特征工程后,就可以交给预估器进行机器学习,流程和常用API如下。 1.实例化预估器(估计器)对象(estimator), 预估器对象很多,都是estimator的子类(1)用于分类的预估器sklearn.neighbors.KNeighbors…...
[模型选择与调优]机器学习-part4
七 模型选择与调优 1 交叉验证 (1) 保留交叉验证HoldOut HoldOut Cross-validation(Train-Test Split) 在这种交叉验证技术中,整个数据集被随机地划分为训练集和验证集。根据经验法则,整个数据集的近70%被用作训练集ÿ…...
PyTorch API 1 - 概述、数学运算、nn、实用工具、函数、张量
文章目录 torch张量创建操作索引、切片、连接与变异操作 加速器生成器随机采样原地随机采样准随机采样 序列化并行计算局部禁用梯度计算数学运算常量逐点运算归约操作比较运算频谱操作其他操作BLAS 和 LAPACK 运算遍历操作遍历操作遍历操作遍历操作遍历操作遍历操作遍历操作遍历…...
如何在mac上使用便利贴
可以在 App Store 下载便利贴应用实现在电脑上贴便条的效果。 以 「桌面便利贴」这款应用为例,创建的便利贴会像桌面上的文件一样展示在桌面上,随时可以查看。还可以修改便笺的颜色、透明度、字体、高亮等等。 我比较喜欢的功能是将便签固定在所有窗口的…...
Linux——Mysql索引和事务
目录 一,Mysql索引介绍 1,索引概述 1,索引的优点 2,索引的缺点 2,索引作用 3,索引分类 普通索引 唯一索引 主键索引 组合索引 全文索引 4,查看索引 5,删除索引 6&…...
vim 查看复杂的宏扩展
在一些复杂项目中,使用宏可以简化代码。但是对于刚接触项目的人来说,分析层层嵌套的宏,是件头疼的事情。 使用 vim 的多窗口功能,可以为此提供一些帮助。 如下图,分析4层嵌套的宏,DEFINE_I440FX_MACHINE -…...
【计算机视觉】OpenCV项目实战:基于OpenCV的图像分割技术深度解析与实践指南
基于OpenCV的图像分割技术深度解析与实践指南 项目概述与技术背景项目核心特点传统分割算法分类 环境配置与项目结构系统要求安装步骤项目结构解析 核心算法实现解析1. 阈值分割(Otsu方法)2. Canny边缘检测3. 分水岭算法 实战应用指南1. 基础分割流程2. …...
线性表-顺序表(Sequential List)
1 线性表 1.1 顺序表(Sequential List) 顺序表并不难理解,主要是知道顺序表是在内存中连续存储的一段数据,知道这个后,相应的算法也就非常简单了。 线性表的顺序表示指的是用一组地址连续的存储单元依次存储线性表的…...
《用MATLAB玩转游戏开发:从零开始打造你的数字乐园》基础篇(2D图形交互)-俄罗斯方块:用旋转矩阵打造经典
《用MATLAB玩转游戏开发:从零开始打造你的数字乐园》基础篇(2D图形交互)-🎮 俄罗斯方块:用旋转矩阵打造经典 🧊 大家好!今天我将带大家用MATLAB实现经典的俄罗斯方块游戏。我们将从数学原理出发…...
通过user-agent来源判断阻止爬虫访问网站,并防止生成[ error ] NULL日志
一、TP5.0通过行为(Behavior)拦截爬虫并避免生成 [ error ] NULL 错误日志 1. 创建行为类(拦截爬虫) 在 application/common/behavior 目录下新建BlockBot.php ,用于识别并拦截爬虫请求: <?php name…...
微服务的“迷宫” - 我们为何需要服务网格?
微服务的“迷宫” - 我们为何需要服务网格? 你好!欢迎来到我们的服务网格探索之旅。近年来,“微服务架构”无疑是软件开发领域最热门的词汇之一。它将庞大的单体应用拆分成一组小而独立的、可以独立开发、部署和扩展的服务单元,带来了前所未有的敏捷性和弹性。开发团队可以…...
Ubuntu 安装 HAProxy
HAProxy 是什么 HAProxy(High Availability Proxy) 是一个 高性能、高可用的 TCP 和 HTTP 负载均衡器与代理服务器。 HAProxy 的特点 特性说明支持协议HTTP、HTTPS、TCP高性能使用 C 语言编写,性能极高高可用与 Keepalived 配合可实现主备健…...
VUE CLI - 使用VUE脚手架创建前端项目工程
前言 前端从这里开始,本文将介绍如何使用VUE脚手架创建前端工程项目 1.预准备(编辑器和管理器) 编辑器:推荐使用Vscode,WebStorm,或者Hbuilder(适合刚开始练手使用),个…...
Nginx高级配置
目录 一.网页的状态页 二. Nginx第三方模块 2.1 echo模块 三. 变量 3.1 内置变量 3.2 自定义变量 四. 自定义访问日志 (优化) 4.1 自定义访问日志的格式 4.2 自定义json 格式日志 五. Nginx压缩功能 六 . HTTPS 功能 6.1 https概述 6.2 配置实例-----自签名证…...
Docker镜像搬运工:深入解析export与import,实现容器环境无缝迁移!
Docker作为现代开发运维的利器,其镜像和容器的管理技巧直接影响效率。当我们需要跨环境迁移容器状态时,docker export和docker import这对组合命令就能大显身手。本文带你彻底搞懂它们的核心逻辑、使用场景及避坑指南! 一、Docker export&…...
数字孪生实战笔记(1)数字孪生的含义、应用及技术体系
一、含义 数字孪生(Digital Twin)是一种通过数字化模型在虚拟世界中实时映射和模拟物理实体、系统或过程的技术。它的核心目的是通过对现实对象的建模、感知、分析和预测,实现对物理世界的全面感知、智能控制和优化决策。数字孪生 实体对象 …...
计算机网络 4-2-2 网络层(IPv4)
2.7 网络地址转换NAT 引入端口号:IP地址端口号→一个特定的进程,(不同主机可能存在相同端口号) 网络层实现了“主机到主机”的通信。网络层在IP数据报的首部,指明源IP地址、目的IP地址 传输层实现了“端到端” &#…...
第二个简单的SpringBoot和Vue前后端全栈的todoapp案例
项目源于哔哩哔哩,按视频手敲了一下,补充上代码和一些细节。 全栈项目实践:1小时快速入门SpringBootvue3element-plus_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1LH4y1w7Nd/?spm_id_from333.1387.favlist.content.click&vd_…...
探秘 Canva AI 图像生成器:重塑设计创作新范式
Canva 凭借简洁易用的界面和海量模板资源,早已成为设计师和普通用户的心头好。而 Canva AI 图像生成器的推出,更是为设计领域带来了一场深刻变革,以智能化的手段重塑了图像创作的方式与边界。 技术内核:AI 如何驱动图像生成 Can…...
栈应用:辅助站(c++)
干货 今天讲讲最大辅助栈和最小辅助栈 主栈进入元素的时候 最大辅助栈:保证新元素大于等于(辅助栈)顶的时候,再进入辅助栈这样就能保证最大辅助栈的栈顶元素 是主栈中的最大值 主栈出栈的时候 最大辅助栈:主栈出栈元素如果等于(辅助栈)的栈顶元素,再…...