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

【mysql】表信息无法获取与插入数据错误

一:无法获取表信息

处理流程分析

初始问题:get_room_member_list 函数调用后,未能收到预期的群成员列表回调

Error: not all arguments converted during string formatting
127.0.0.1 - - [26/Feb/2025 11:55:32] "POST / HTTP/1.1" 500 -# 错误代码
def insert_group_from_room_list(self, room_list):# ... (省略部分代码) ...cursor = self._execute_query(sql, group_data_list)  # <---  使用 cursor.executemany 批量插入# ...

调用 get_room_member_list 函数(该函数用于获取数据库表中的信息)后,Flask 应用没有接收到 WW_DATA_MEMBER_LIST_MSG 类型的回调消息,或者收到了但没有正确处理

def insert_group_from_room_list(self, room_list):# ... (省略部分代码) ...cursor = self.connection.cursor()inserted_count = 0try:for group_data_tuple in group_data_list: # 循环处理 group_data_listcursor.execute(sql, group_data_tuple)  # <---  使用 cursor.execute 执行单条插入inserted_count += 1self.connection.commit()  # 循环结束后提交事务# ...

请求发送格式错误 (MessageBuilder 配置不当导致)

开始通过程序代运行无法判断是否为服务器问题,通过调试工具发现,发送到 8888 端口服务器的请求格式不正确,导致服务器无法识别请求,因此没有发送回调

错误根源:MessageBuilder 类中 type_specific 字典对于 WW_DATA_MEMBER_LIST_MSG 等群组管理消息类型的定义不正确,错误地包含了 conversation_id 在 required_fields 中,导致构建的 payload 格式与服务器期望的不符

修改 MessageBuilder 类中 type_specific 字典的定义,移除 WW_DATA_MEMBER_LIST_MSG 等消息类型定义中多余的 conversation_id 字段,确保 payload 结构符合 8888 端口服务器的要求

修改插入数据字段后,代码的问题仍然没有修复

Flask 应用缺少 WW_DATA_MEMBER_LIST_MSG 回调处理逻辑

问题主要表现在即使请求发送格式正确后,Flask 应用仍然无法处理群成员列表回调

查询代码后发现原因在于 handle_request 函数中缺少处理 WW_DATA_MEMBER_LIST_MSG 类型回调消息的代码分支 (elif msg['type'] == 'WW_DATA_MEMBER_LIST_MSG':),简单来说就是没有处理该请求

在 handle_request 函数中添加 elif msg['type'] == 'WW_DATA_MEMBER_LIST_MSG': 代码块,用于处理 WW_DATA_MEMBER_LIST_MSG 类型的回调消息,并封装到独立的 handle_room_member_list_callback 函数中;但是增加后还是没有解决问题

MySQL 数据库主键冲突错误 (Duplicate entry ... for key 'groups.PRIMARY'         

问题的主要表现:在处理群组列表回调 (WW_DATA_ROOM_LIST_MSG) 时,出现 MySQL 数据库主键冲突错误,无法插入新的群组信息

根本原因分析:insert_group_from_room_list 函数使用了简单的 INSERT 语句,没有处理 conversation_id 重复的情况。 当多次收到包含相同群组信息的 WW_DATA_ROOM_LIST_MSG 回调时,尝试重复插入已存在的群组,导致主键冲突

 修改 insert_group_from_room_list 函数,使用 INSERT ... ON DUPLICATE KEY UPDATE SQL 语句,实现当 conversation_id 冲突时更新现有记录,而不是插入失败。 同时,也对 insert_user 和 insert_group_member 方法进行了类似的修改,以统一处理重复记录的逻辑

但是插入多个数据的时候错误仍然存在

TypeError: not all arguments converted during string formatting 错误 (批量插入参数数量不匹配)

[2025-02-26 13:22:00,218] ERROR in app: Exception on / [POST]
Traceback (most recent call last):File "E:\Anaconda3\Lib\site-packages\flask\app.py", line 2529, in wsgi_appresponse = self.full_dispatch_request()File "E:\Anaconda3\Lib\site-packages\flask\app.py", line 1826, in full_dispatch_requestreturn self.finalize_request(rv)File "E:\Anaconda3\Lib\site-packages\flask\app.py", line 1845, in finalize_requestresponse = self.make_response(rv)File "E:\Anaconda3\Lib\site-packages\flask\app.py", line 2138, in make_responseraise TypeError(
TypeError: The view function for 'handle_request' did not return a valid response. The function either returned None or ended without a return statement.
127.0.0.1 - - [26/Feb/2025 13:22:00] "POST / HTTP/1.1" 500 -

 在使用了 ON DUPLICATE KEY UPDATE 的 insert_group_from_room_list 函数后,出现 TypeError: not all arguments converted during string formatting 错误

批量插入不成功大概率是插入的格式出现了问题。cursor.executemany 批量插入方法与 ON DUPLICATE KEY UPDATE 语句的结合使用可能存在兼容性问题,导致参数格式化错误。 此外,错误地为 group_data_tuple 元组添加了 5 个元素,与 SQL 语句 VALUES 子句的 3 个占位符数量不符

针对该问题主要实践

  • 将 insert_group_from_room_list 函数的批量插入方式 (cursor.executemany) 修改为循环单条插入方式 (cursor.execute),避免 cursor.executemany 与 ON DUPLICATE KEY UPDATE 的潜在冲突

  • 修正 group_data_tuple 的创建方式,确保每个元组只包含 3 个参数,与 SQL 语句 VALUES 子句的占位符数量匹配

结果:此时群组的数据已经可以添加成功

# 错误代码
elif msg['type'] == 'WW_DATA_ROOM_LIST_MSG':# ...if room_list_data:# ...try:# ...print("成功存储群组列表信息到数据库。")except pymysql.Error as db_err:# ...return jsonify({"status": "failed", "message": "数据库操作失败"}), 500# finally:#     db.close_connection()# return jsonify({"status": "processed", "message": "群组列表已处理"}) #  <---  这里被注释掉了# ...# 修改后的代码elif msg['type'] == 'WW_DATA_ROOM_LIST_MSG':# 进入该逻辑# ...if room_list_data:# db.connect()try:# ...print("成功存储群组列表信息到数据库。")except pymysql.Error as db_err:# ...return jsonify({"status": "failed", "message": "数据库操作失败"}), 500# finally:#     db.close_connection()return jsonify({"status": "processed", "message": "群组列表已处理"}) #  <---  取消注释这行# ...

Flask 视图函数未返回有效响应 (TypeError: The view function ... did not return a valid response)

数组中的数据成功插入后,Flask 应用抛出 TypeError,提示 handle_request 函数没有返回有效的响应。该处是一个小错误,主要原因是因为函数处理完成后并没有及时的返回的响应

错误反思总结

解决问题思路总结

首先就是仔细阅读错误信息,根据错误信息的提示,去判断该错误的根源在哪里;然后在代码中查看日志信息,在主要流程以及关键变量部分, 从而定位到错误发生的具体位置。例如在处理数据库错误的时候,添加SQL查询语句日志以及参数日志,这些日志信息都是进一步诊断出错误关键

然后是逐步排查,一般排查的思路是逐步深入,从最外层开始,逐步到代码内部,逐步排查出来问题,例如上述在解决数据没有响应的时候,先排查回调处理逻辑,然后深入到请求构建逻辑,最后到数据库的操作逻辑

排查过程中结合调试工具进一步对可能出现的错误,以及会出现错误的地方进行验证。通过APIfox模拟发送请求,检查接口是否健康可用,同时还通过数据库可视化工具,实时监控数据库的变化,从而实时判断出自己解决问题的思路是否正确 

遇到一些自己不理解的问题,善用AI工具,对一些细节或者模糊不清的逻辑知识进行梳理。与此同时借用AI工具健壮自身的的代码,提供更多的异常检测

二:批量插入数据错误

处理流程分析

pymysql 库在批量执行更新语句的时候出现不兼容的情况

代码中批量执行INSERT ... ON DUPLICATE KEY UPDATE 语句时,可能存在某种不兼容性或行为差异,导致 "Error: not enough arguments for format string" 错误。从代码层面看,SQL 语句和参数列表都准备得似乎没有问题, 但在 pymysql 库的深层处理中, 批量 executemany 与 ON DUPLICATE KEY UPDATE 的组合可能触发了字符串格式化引擎的错误, 报出了一个 误导性的 "参数不足" 错误

此处出现的参数不足问题,检查后发现并不是真正因为参数的数量不够,而是pymysql或者mysql在这种批量处理的时候,内部参数的处理机制可能和我们的预期是不符合的,从而最终导致了格式化过程的异常。出现该错误的时候,对自身的修改路线本身产生了很大的误导性,一开始以为是代码参数传递错误,但是忽略了SQL都语句本身复杂性所带来的问题

解决问题思路总结

首先, 我从 单条数据插入 开始验证, 确认最基本的数据库连接、 SQL INSERT 语句、 和参数传递都是没有问题的。 单条插入成功, 说明数据库层面基本功能是正常的

然后在此基础上逐步增加难度,然后开始执行批量插入,看看是否是调用量插入本身的问题。然后简化SQL语句,在插入的时候移除了ONDUPLICATE KEY UPDATE,然后再执行批量插入,然后插入成功,最终也证明了该处就是问题的根源。

处理错误过程中,在重要的位置都加上了详细的日志,主要是每一次看到数据库的反应,以及数据库语句的执行情况,这样可以帮助深入到代码的内部,观察数据流和程序的执行状态,从而定位问题

期间为了排除都是因为flask框架所导致的问题,专门建立了一个测试函数,专门测试数据的插入是否正确,从而进一步的缩小问题的范围

错误反思总结

针对于上述出现错误,对以后自己的提示

  • 每次使用SQL语句和占位符的事后,一定要清楚SQL语句中%s占位符的数量,需要和提供的参数元组中的元素数量一致
  • 简化 SQL 语句, 逐步增加复杂度: 如果 SQL 语句比较复杂 (例如包含 ON DUPLICATE KEY UPDATE、 多表连接等), 先简化 SQL 语句到最基本的 INSERT ... VALUES 形式, 验证基本插入功能是否正常。 如果基本插入没问题, 再逐步增加 SQL 语句的复杂度, 每次增加一点, 就测试一下, 看看在哪一步开始出现错误。不要尝试一步到位的数据库书写方法

  • 遇到棘手的问题,单独外部进行测试,这样测试环境不受到其他影响,也可以更好的排除

相关文章:

【mysql】表信息无法获取与插入数据错误

一&#xff1a;无法获取表信息 处理流程分析 初始问题&#xff1a;get_room_member_list 函数调用后&#xff0c;未能收到预期的群成员列表回调 Error: not all arguments converted during string formatting 127.0.0.1 - - [26/Feb/2025 11:55:32] "POST / HTTP/1.1&qu…...

七、Redis 内存管理详解:模型、优化策略(LRU/LFU、对象共享)

Redis 内存管理详解:模型、优化策略(LRU/LFU、对象共享) Redis 以高性能和低延迟著称,但作为基于内存的数据库,内存管理是其核心问题之一。本文将深入解析 Redis 的内存模型、内存优化策略(包括 LRU/LFU 机制、对象共享等),帮助开发者提高 Redis 的存储效率和性能。 1…...

如何调试Linux内核?

通过创建一个最小的根文件系统&#xff0c;并使用QEMU和GDB进行调试。 1.准备工作环境 确保系统上安装了所有必要的工具和依赖项。 sudo apt-get update //更新一下软件包 sudo apt-get install build-essential git libncurses-dev bison flex libssl-dev qemu-system-x…...

Pywinauto Recorder: 将Windows操作转化为Python脚本,高效简易地实现操作自动化

Pywinauto Recorder是一个强大的UI自动化工具&#xff0c;它能够记录用户在Windows应用程序上的操作&#xff0c;并将其转换为可执行的Python脚本。这意味着你可以轻松地将重复性的GUI操作自动化&#xff0c;提高效率并降低人为错误。 什么是Pywinauto Recorder&#xff1f; …...

【AI大模型】DeepSeek + Kimi 高效制作PPT实战详解

目录 一、前言 二、传统 PPT 制作问题 2.1 传统方式制作 PPT 2.2 AI 大模型辅助制作 PPT 2.3 适用场景对比分析 2.4 最佳实践与推荐 三、DeepSeek Kimi 高效制作PPT操作实践 3.1 Kimi 简介 3.2 DeepSeek Kimi 制作PPT优势 3.2.1 DeepSeek 优势 3.2.2 Kimi 制作PPT优…...

Spring统一格式返回

目录 一&#xff1a;统一结果返回 1&#xff1a;统一结果返回写法 2&#xff1a;String类型报错问题 解决方法 二&#xff1a;统一异常返回 统一异常返回写法 三&#xff1a;总结 同志们&#xff0c;今天咱来讲一讲统一格式返回啊&#xff0c;也是好久没有讲过统一格式返…...

【商城实战(2)】商城架构设计:从底层逻辑到技术实现

【商城实战】专栏重磅来袭&#xff01;这是一份专为开发者与电商从业者打造的超详细指南。从项目基础搭建&#xff0c;运用 uniapp、Element Plus、SpringBoot 搭建商城框架&#xff0c;到用户、商品、订单等核心模块开发&#xff0c;再到性能优化、安全加固、多端适配&#xf…...

Netty笔记6:Netty组件

Netty笔记1&#xff1a;线程模型 Netty笔记2&#xff1a;零拷贝 Netty笔记3&#xff1a;NIO编程 Netty笔记4&#xff1a;Epoll Netty笔记5&#xff1a;Netty开发实例 Netty笔记6&#xff1a;Netty组件 Netty笔记7&#xff1a;ChannelPromise通知处理 Netty笔记8&#xf…...

大模型学习笔记------Llama 3模型架构简介

大模型学习笔记------Llama 3模型架构 1、整体网络结构2、主要创新点3、其他关键改进点 LLaMA(Large Language Model Meta AI)系列模型是Meta发布并开源&#xff0c;分别在2023年2月、2023年7月和2024年4月发布了经历了LLaMA 1、LLaMA 2和LLaMA 3模型。本文只讲相对比较成熟、性…...

DeepSeek本地接口调用(Ollama)

前言 上篇博文&#xff0c;我们通过Ollama搭建了本地的DeepSeek模型&#xff0c;本文主要是方便开发人员&#xff0c;如何通过代码或工具&#xff0c;通过API接口调用本地deepSeek模型 前文&#xff1a;DeepSeek-R1本地搭建_deepseek 本地部署-CSDN博客 注&#xff1a;本文不仅…...

C语言:51单片机 基础知识

一、单片机概述 单片机的组成及其特点 单片机是指在一块芯片上集成了CPU、ROM、RAM、定时器/计数器和多种I/O接口电路等&#xff0c;具有一定规模的微型计算机。 特点&#xff1a; 1、单片机的存储器以ROM、RAM严格分工。 2、采用面向控制的指令系统。 3、单片机的I/O口引脚通…...

DAIR-V2X-R数据集服务器下载

【官方github链接】https://github.com/ylwhxht/V2X-R 点击并登录 选择并点击下载 浏览器弹窗&#xff0c;右键选择复制下载链接 ------------------------------------服务器下载----------------------------------------- 登录服务器&#xff0c;选在要下载的文件夹复制路…...

Kali CentOs 7代理

工具v2↓ kali_IP段v2端口例子<1> kali_IP段v2端口例子<2> CentOs 7 //编辑配置文件 vi /etc/profile//在该配置文件的最后添加代理配置 export http_proxyhttp://ip:port //代理服务器ip地址和端口号 export https_proxyhttp://ip:port //代理服务器ip地址和…...

LabVIEW虚拟频谱分析仪

在电子技术快速发展的今天&#xff0c;频谱分析已成为信号优化与故障诊断的核心手段。传统频谱分析仪虽功能强大&#xff0c;但价格高昂且体积笨重&#xff0c;难以满足现场调试或移动场景的需求。 基于LabVIEW开发的虚拟频谱分析仪通过软件替代硬件功能&#xff0c;显著降低成…...

商城源码的框架

商城源码的框架通常是基于某种Web开发框架或者电子商务平台来构建的。以下是一些常见的商城源码框架&#xff1a; WooCommerce&#xff1a;基于WordPress的电子商务插件&#xff0c;适用于小型到中型的在线商店。 Magento&#xff1a;一个功能强大和灵活的开源电子商务平台&am…...

关联封号率降70%!2025最新IP隔离方案实操手册

高效运营安全防护&#xff0c;跨境卖家必看的风险规避指南 跨境账号管理的核心挑战&#xff1a;关联封号风险激增 2024年&#xff0c;随着全球电商平台对账号合规的审查日益严苛&#xff0c;“关联封号”已成为跨境卖家最头疼的问题之一。无论是同一IP登录多账号、员工操作失误…...

Qwen2-Audio系列学习笔记

模型介绍 GitHub - QwenLM/Qwen2-Audio: The official repo of Qwen2-Audio chat & pretrained large audio language model proposed by Alibaba Cloud. https://arxiv.org/pdf/2407.10759 https://zhuanlan.zhihu.com/p/712987238 We introduce the latest progress o…...

高频 SQL 50 题(基础版)_1341. 电影评分

高频 SQL 50 题&#xff08;基础版&#xff09;_1341. 电影评分 思路 思路 (select Users.name results from Users left join MovieRating on Users.user_id MovieRating.user_id group by(Users.name) order by count(MovieRating.movie_id) desc,Users.name asc limit 1) u…...

C#批量压缩并上载CSV数据文件到Box企业云盘

C# .NET 8实现Windows下批量压缩csv文件为zip文件&#xff0c;然后异步上传到box企业云服务网盘路径&#xff0c;实现异常处理和写入运行状态日志&#xff0c;参数来自ini配置文件。 C# .NET 8代码示例&#xff0c;包含INI配置读取、CSV文件压缩、Box上传、异步处理和日志记录…...

pyside6学习专栏(九):在PySide6中使用PySide6.QtCharts绘制6种不同的图表的示例代码

PySide6的QtCharts类支持绘制各种型状的图表&#xff0c;如面积区域图、饼状图、折线图、直方图、线条曲线图、离散点图等&#xff0c;下面的代码是采用示例数据绘制这6种图表的示例代码,并可实现动画显示效果&#xff0c;实际使用时参照代码中示例数据的格式将实际数据替换即可…...

阿里万相,正式开源

大家好&#xff0c;我是小悟。 阿里万相正式开源啦。这就像是AI界突然开启了一扇通往宝藏的大门&#xff0c;而且还是免费向所有人敞开的那种。 你想想看&#xff0c;在这个科技飞速发展的时代&#xff0c;AI就像是拥有神奇魔法的魔法师&#xff0c;不断地给我们带来各种意想…...

Golang语法特性总结

1.认识Golang代码特性 package main //1.包含main函数的文件就是一个main包--当前程序的包名// import "fmt" // import "time" import("fmt""time" )//3.同时包含多个包 4.强制代码风格:函数的 { 一定和函数名在同一行&#xff0c;否…...

AI绘画软件Stable Diffusion详解教程(6):文生图、提示词细说与绘图案例

文生图即以文字描述来生成图像&#xff0c;这是目前所有AI绘画软件的基本功能之一。要想画一副好的图片&#xff0c;除了选择好的模型&#xff0c;在文生图中&#xff0c;提示词特别关键。 一、什么是提示词&#xff08;Prompt&#xff09; 提示词又称创意、关键词、咒语、ca…...

getline的使用(L1-059敲笨钟)

在 C 中&#xff0c;getline 函数主要有两种常用的形式&#xff0c;分别是 <iostream> 头文件中的 std::getline 用于从输入流读取一行字符串&#xff0c;以及 <cstdio> 头文件中的 std::getline&#xff08;C11 引入&#xff09;用于从文件流读取一行。下面分别介…...

Python数据可视化

1.Python 数据可视化全指南 &#x1f680; 数据可视化是数据分析和机器学习的关键环节&#xff0c;Python 提供了丰富的可视化库&#xff0c;如 Matplotlib、Seaborn、Plotly、Pandas 内置可视化等。以下是 Python 可视化的核心内容及最佳实践。 2. 基础可视化库 2.1 Matplot…...

探秘基带算法:从原理到5G时代的通信变革【五】CORDIC算法

文章目录 2.4 CORDIC算法2.4.1 CORDIC算法的基本原理2.4.2 方法论与分类体系旋转模式矢量模式线性模式 2.4.3 **CORDIC 算法中的误差来源****角度逼近误差的分析****缩放效应误差的分析****精度需求与迭代次数的关系****常见应用场景下的迭代次数建议****总结** 2.4.4优缺点分析…...

golang介绍,特点,项目结构,基本变量类型与声明介绍(数组,切片,映射),控制流语句介绍(条件,循环,switch case)

目录 golang 介绍 面向并发 面向组合 特点 项目结构 图示 入口文件 main.go 基本变量类型与声明 介绍 声明变量 常量 字符串(string) 字符串格式化 空接口类型 数组 切片 创建对象 追加元素 复制切片 map(映射) 创建对象 使用 多重赋值 控制流语句…...

大语言模型学习--本地部署DeepSeek

本地部署一个DeepSeek大语言模型 研究学习一下。 本地快速部署大模型的一个工具 先根据操作系统版本下载Ollama客户端 1.Ollama安装 ollama是一个开源的大型语言模型&#xff08;LLM&#xff09;本地化部署与管理工具&#xff0c;旨在简化在本地计算机上运行和管理大语言模型…...

力扣-动态规划-53 最大子数组和

思路 dp数组定义&#xff1a;以i为结尾的字符串的最大子数组和为dp[i]递推公式&#xff1a; dp[i] max(nums[i], dp[i-1] nums[i]);dp数组初始化&#xff1a;dp[0] nums[0];遍历顺序&#xff1a;顺序时间复杂度&#xff1a; 代码 class Solution { public:int maxS…...

论文阅读和代码实现EfficientDet(BiFPN)

BiFPN 采用双向特征融合&#xff0c;让 P3 和 P4 不仅能获取来自 Backbone 的信息&#xff0c;还可以有效吸收 P5 的高级语义特征&#xff0c;增强小目标的判别能力 通过 加权特征融合&#xff08;Weighted Feature Fusion&#xff09;&#xff0c;BiFPN 让 P3 层能够 自动调整…...

[杂学笔记] 封装、继承、多态,堆和栈的区别,堆和栈的区别 ,托管与非托管 ,c++的垃圾回收机制 , 实现一个单例模式 注意事项

文章目录 1.封装、继承、多态2. 堆和栈的区别3.指针和引用的区别4. 托管与非托管5. c的垃圾回收机制6. 实现一个单例模式 注意事项 1.封装、继承、多态 封装就是将数据和内部的方法封装到一个类中&#xff0c;对外隐藏内部实现细节&#xff0c;但是留下了公共接口提供给外部使…...

c++ std::bind、std::bind_front使用笔记

c std::bind、std::bind_front使用笔记 std::bind 和 std::bind_front 的使用说明std::bind (C11 引入)std::bind_front (C20 引入) 应用场景应用注意事项应用注意事项的例子 std::bind 和 std::bind_front 的使用说明 std::bind (C11 引入) std::bind 用于创建一个新的可调用…...

神策数据严正声明

近日&#xff0c;我们发现有不法分子冒充神策网络科技&#xff08;北京&#xff09;有限公司&#xff08;以下简称”神策数据”&#xff09;的名义&#xff0c;发布虚假的招聘广告、面试邀请&#xff0c;企图误导求职者并进行不法行为。对此&#xff0c;我司发布严正声明&#…...

vue+elementui 实现上传文件/导入文件的功能

vueelementui 实现上传文件/导入文件的功能 1. 上传组件 <el-form-item label"上传文件&#xff1a;"><el-uploadaction"":file-list"fileList":show-file-list"false":http-request"handUpLoad"drag:limit"…...

FastGPT 引申:知识库辅助开发(代码符号自动提取与文件匹配工具详解)

文章目录 FastGPT 引申&#xff1a;知识库辅助开发&#xff08;代码符号自动提取与文件匹配工具详解&#xff09;1. 符号提取 prompt2. 文件查询 prompt3. 总结 FastGPT 引申&#xff1a;知识库辅助开发&#xff08;代码符号自动提取与文件匹配工具详解&#xff09; 在开发过程…...

李国杰院士 “七问” DeepSeek:深度剖析 AI 发展新态势

李国杰院士 “七问” DeepSeek&#xff1a;深度剖析 AI 发展新态势 在人工智能领域的探索之路上&#xff0c;李国杰院士凭借深厚的学术造诣和前瞻性的眼光&#xff0c;成为指引方向的重要灯塔。 李国杰院士任职于中国科学院计算技术研究所&#xff0c;担任研究员一职。他不仅是…...

C#中泛型的协变和逆变

协变&#xff1a; 在泛型接口中&#xff0c;使用out关键字可以声明协变。这意味着接口的泛型参数只能作为返回类型出现&#xff0c;而不能作为方法的参数类型。 示例&#xff1a;泛型接口中的协变 假设我们有一个基类Animal和一个派生类Dog&#xff1a; csharp复制 public…...

transformer架构解析{掩码,(自)注意力机制,多头(自)注意力机制}(含代码)-3

目录 前言 掩码张量 什么是掩码张量 掩码张量的作用 生成掩码张量实现 注意力机制 学习目标 注意力计算规则 注意力和自注意力 注意力机制 注意力机制计算规则的代码实现 多头注意力机制 学习目标 什么是多头注意力机制 多头注意力计算机制的作用 多头注意力机…...

SpringBoot生成唯一ID的方式

1.为什么要生成唯一ID&#xff1f; 数据唯一性&#xff1a;每个记录都需要有一个独一无二的标识符来确保数据的唯一性。这可以避免重复的数据行&#xff0c;并有助于准确地查询、更新或删除特定的记录。 数据完整性&#xff1a;通过使用唯一ID&#xff0c;可以保证数据库中的数…...

认识时钟树

时钟源 高速外部震荡器HSE 低速外部震荡器LSE 高速内部震荡器HSI 低速内部震荡器LSI 易混淆点&#xff1a; RC&#xff08;Resistor-Capacitor&#xff0c;电阻-电容振荡器&#xff09;一般是内部时钟源 RTC&#xff08;Real-Time Clock&#xff0c;实时时钟&#xff09;…...

NLP如何训练AI模型以理解知识

一、自然语言处理&#xff08;NLP&#xff09;的定义与核心目标 1. 什么是自然语言处理&#xff1f; NLP是计算机科学与人工智能的交叉领域&#xff0c;旨在让机器具备以下能力&#xff1a; • 理解&#xff1a;解析人类语言&#xff08;文本或语音&#xff09;的语法、语义和…...

linux如何在某个文件夹下查看所有文件(层级只到当前文件夹的两层)并找到‘XXXX’ 这个单词

问了AI写的不错&#xff0c;记录一下&#xff0c;排查一些报错的时候比较好用 在 Linux 中&#xff0c;您可以通过命令行工具查看某个文件夹下的所有文件&#xff08;限制到当前文件夹及其子文件夹两层深度&#xff09;&#xff0c;并搜索包含特定单词&#xff08;如 XXXXX&am…...

Android 常见View的防抖

在开发Android应用时&#xff0c;我们经常会遇到用户快速点击按钮或者频繁触发某个事件的情况。这种行为可能会导致不必要的重复操作&#xff0c;例如多次提交表单、重复加载数据等。为了避免这些问题&#xff0c;我们需要对这些事件进行防抖处理。本文将详细介绍如何在Kotlin中…...

Unity打包到webgl鼠标图标大小不正确

我使用了自定义鼠标纹理&#xff0c;打包出来发现鼠标特别的大&#xff0c;位置也不对劲 研究了一下&#xff0c;不考虑浏览器界面缩放的话&#xff0c;可以直接改import settings的最大尺寸&#xff0c;改成合适的尺寸。 暂时先这样解决吧 最后贴一个设置鼠标图标的代码 pub…...

CentOS 7中安装Dify

Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等&#xff0c;让您可以快速从原型到生产。尤其是我们本地部署DeepSeek等大模型时&#xff0c;会需要用到Dify来帮我们快捷的开发和应用。 大家可以参考学习它的中…...

爬蟲動態IP代理與數據採集穩定性

對於從事爬蟲開發的人來說&#xff0c;IP代理的使用直接影響了爬蟲的效率和穩定性。爬蟲的本質是模擬用戶訪問網站&#xff0c;通過抓取網頁內容來獲取所需數據。但大多數網站為了保護自己的數據或防止濫用&#xff0c;會設置諸如IP訪問頻率限制、登錄驗證甚至封禁等反爬蟲措施…...

excel 斜向拆分单元格

右键-合并单元格 右键-设置单元格格式-边框 在设置好分割线后&#xff0c;你可以开始输入文字。 需要注意的是&#xff0c;文字并不会自动分成上下两行。 为了达到你期望的效果&#xff0c;你可以通过 同过左对齐、上对齐 空格键或使用【AltEnter】组合键来调整单元格中内容的…...

React Native 实现滑一点点内容区块指示器也滑一点点

效果图如上&#xff0c;内容滑一点点&#xff0c;指示器也按比例话一点点&#xff0c;列表宽度跟数据有关。 实现思路如下&#xff1a; 1.监听列表滑动事件&#xff0c;获取列表横向滑动距离&#xff0c;假设为A&#xff1b; 2.获取列表的宽度&#xff0c;及列表可滑动的宽度…...

解决Vscode项目同时运行两个项目终端无法自动叠加的问题

终端&#xff08;如命令行工具或服务进程&#xff09;无法自动“叠加”使用同一资源&#xff08;如端口号、进程ID等&#xff09;的核心原因在于操作系统的资源管理机制和网络协议规范的限制。以下是具体分析&#xff1a; 以下是解决 VSCode 同时运行两个项目时终端被前一个占…...

vuex中的state是响应式的吗?

在 Vue.js 中&#xff0c;Vuex 的 state 是响应式的。这意味着当你更改 state 中的数据时&#xff0c;依赖于这些数据的 Vue 组件会自动更新。这是通过 Vue 的响应式系统实现的&#xff0c;该系统使用了 ES6 的 Proxy 对象来监听数据的变化。 当你在 Vuex 中定义了一个 state …...