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

生成式AI安全最佳实践 - 抵御OWASP Top 10攻击 (下)

今天小李哥将开启全新的技术分享系列,为大家介绍生成式AI的安全解决方案设计方法和最佳实践。近年来生成式 AI 安全市场正迅速发展。据IDC预测,到2025年全球 AI 安全解决方案市场规模将突破200亿美元,年复合增长率超过30%,而Gartner则预估到2025年约30%的网络攻击将利用生成式AI技术。与此同时,Capgemini的调查显示,近74%的企业认为AI驱动的安全防护至关重要,加上Cybersecurity Ventures报告指出,与生成式AI相关的安全事件年增长率超过20%,这充分表明企业和安全供应商正面临日益严峻的安全挑战,并加大投入以构建更全面的防护体系。今天要介绍的就是如何设计生成式AI应用安全解决方案,抵御OWASP Top 10攻击。未来也会分享更多的AI安全解决方案,欢迎大家关注。

目前我们生活中有各色各样的生成式AI应用,常见的场景之一就是生成式AI对话助手。然而在部署之前,通常还要对应用进行评估,其中包括了解安全态势、监控和日志记录、成本跟踪、弹性等问题。在这些评估中,安全性通常是最高优先级。如果存在无法明确识别的安全风险,我们就无法有效解决这些风向,这可能会阻碍生成式AI应用向生产环境部署的进度。

在本文章中,小李哥将向大家展示一个自己设计的生成式应用的真实场景,并演示如何利用 OWASP安全框架,基于大语言模型应用常见的Top 10安全攻击来评估应用的安全态势,以及实施缓解措施。下图就是一个生成式AI应用的安全解决方案最佳实践,我们将继续从左到右详细介绍本方案中使用到的安全方案细节。

应用控制层

应用层通常容易遭受到诸如LLM01:2025提示注入、LLM05:2025输出处理不当以及LLM02:2025敏感信息泄露等风险。恶意攻击者可能会频繁尝试恶意的提示词输入来操控AI模型,从而可能通过AI模型泄露敏感信息或危及下游的应用系统。

在我们开头的架构图中,应用层的服务器就是亚马逊云科技无服务器计算服务Lambda。它通过从 API Gateway中提取事件的数据部分并进行语法和语义校验,实施严格的输入验证。通过对输入请求进行清洗、应用白名单和需要组织的关键字黑名单,并预定义合法请求的格式和规则进行验证,使用Lambda服务有助于防止LLM01:2025提示注入攻击。此外通过将user_id字段传递到下游应用中,可以使下游应用组件降低敏感信息泄露的风险,从而解决了LLM02:2025敏感信息泄露的问题。

同时亚马逊云科技Bedrock Guardrails提供了额外的大模型输入输出保护层,可过滤和拦截敏感内容,如个人身份信息(PII)以及通过正则表达式定义的自定义敏感数据。Guardrails还有检测和屏蔽攻击性语言、竞争对手名称或其他不希望出现的词语,确保输入和输出均安全。大家还可以利用 Guardrails在有害或操控性的提示词到达AI模型之前就进行检测和过滤,从而防止LLM01:2025提示注入攻击,维护提示词的完整性。

另一个关键的安全方面是管理AI模型的输出。由于AI模型可能生成包含可执行代码的内容,比如 JavaScript或Markdown,如果这些内容处理不当,就存在XSS攻击的风险。为降低此类风险,我们需要使用输出编码技术,例如HTML实体编码或JavaScript转义,在将内容呈现给用户前将任何潜在有害内容进行无害化转换。此方法解决了LLM05:2025输出处理不当的风险。

我们也可以利用亚马逊云科技Bedrock的提示管理和版本控制,使得在不断提升用户体验的同时,也能维持整个应用的安全性。通过完善管理提示词及其处理方式的变更,在增强IA模型功能的同时不会引入新的漏洞,并降低LLM01:2025提示注入攻击的风险。

降低未经授权或非预期的AI模型操作风险的策略的核心就是:“将AI模型视为不受信任的信息来源,并在某些操作上采用人工介入流程”。

亚马逊云科技Bedrock大语言模型与代理层

AI模型与AI模型代理层经常处理与AI模型的交互,面临诸如LLM10:2025不受限制的使用、LLM05:2025输出处理不当以及LLM02:2025敏感信息泄露等风险。

拒绝服务(DoS)攻击可能会通过大量资源密集型请求使AI模型处理不堪重负,从而降低整体服务质量并增加成本。在与亚马逊云科技Bedrock托管的AI模型交互时,设置诸如输入请求的最大长度等请求参数,将有助于降低AI模型资源耗尽的风险。此外亚马逊云科技Bedrock代理对队列中的最大动作数量以及完成客户意图的总动作数都有硬性限制,这限制了系统对AI模型代理基于用户需求所采取的总动作数量,避免了可能耗尽AI模型资源的异常死循环或密集任务。

输出处理不当会导致远程代码执行、跨站脚本(XSS)、服务器端请求伪造(SSRF)以及权限提升等安全漏洞。对AI模型生成的输出在发送到下游服务前,如果验证和管理不佳,就可能间接开放漏洞攻击面,让这些漏洞有机可乘。为降低这一风险,应将模型视为普通的应用用户一样,对 LLM生成的响应进行安全验证。亚马逊云科技Bedrock Guardrails利用可配置阈值的内容过滤器来过滤各种有害内容,并在这些响应被其他后端系统进一步处理之前就进行阻拦,从而简化了这一过程。Guardrails会自动评估用户输入和模型响应,检测并帮助防止有害的内容。

亚马逊云科技Bedrock代理在执行多步骤任务时,与亚马逊云科技原生服务以及外部的第三方服务安全集成,从而有效解决输出处理不安全、过量代理行为和敏感信息泄露的风险。在文章开头的架构图中,代理下的action group中的Lambda服务用于对所有输出文本进行编码,使其自动无法被 JavaScript或Markdown异常执行。此外action group中的Lambda函数会解析和记录代理每一步执行时从AI模型得到的回复,并根据恢复内容相应地控制输出,确保在下一步处理前输出内容完全安全。

敏感信息泄露是AI模型面临的另一大风险,因为恶意的提示工程可能会导致AI模型无意中在响应中泄露不该公开的细节,从而引发AI模型隐私和机密性问题。为缓解这一问题,可以通过亚马逊云科技 Bedrock Guardrails中的内容过滤器实施数据清洗措施。

另外还应根据user_id实施自定义、精细化的数据过滤策略,并根据id执行严格的用户访问策略。亚马逊云科技Bedrock Guardrails可以过滤敏感内容,亚马逊云科技Bedrock代理则通过允许大家在预处理输入的提示词模板和处理响应的提示词模板中实施自定义逻辑来去除任何非预期的有害信息,进一步降低了敏感信息泄露的风险。如果大家已为AI模型启用了模型调用日志记录,或者在应用中实施了自定义日志逻辑,将 AI模型的输入和输出记录到亚马逊云科技CloudWatch中,那我们也需要开启CloudWatch日志数据保护等措施,在CloudWatch日志中识别和屏蔽敏感信息,从而进一步降低敏感信息泄露的风险。


代理插件控制层(action group Lambda函数)

代理插件控制层经常需要与内部和外部服务集成,并对内部和外部数据源以及外部第三方API应用授权。LLM08:2025向量与嵌入薄弱性以及LLM06:2025代理行为过度的风险开始显现。不受信或未经验证的第三方插件可能会以恶意代码的形式引入后门或漏洞。

对与外部系统进行集成交互的action group Lambda函数所使用的IAM角色,应使用最小权限原则原则,有助于解决LLM06:2025代理行为过度和LLM08:2025向量与嵌入薄弱性的风险。从文章开头的架构图可以看出,代理插件层的Lambda函数便是关联了一个最小权限的 IAM 角色,用以安全访问和与其他内部亚马逊云科技服务进行交互。

此外在确定用户身份后,通过将user_id传递给下游集成应用(如代理插件层),通过基于用户id身份授权访问,从而进一步限制数据的访问。虽然这个user_id参数可在代理插件控制层的Lambda函数中用于自定义授权逻辑,但其主要作用就是用于为外部第三方插件提供基于用户身份的细粒度的访问控制。应用所有者有责任在action group Lambda函数中实施自定义授权逻辑,该自定义逻辑需要将user_id参数与开发者预定义授权规则相结合,为第三方API和插件应用配置安全的访问授权级别。此方法将确定性的访问控制应用于非确定性的AI模型前,使得对哪些用户可以访问和执行特定外部第三方插件实现了细粒度控制。

将基于user_id的数据授权与IAM角色的最小权限相结合,一般可最大限度地降低LLM08:2025向量与嵌入薄弱性以及LLM06:2025代理非预期行为的风险。


RAG知识库数据存储层

RAG的数据存储层负责安全地从各类亚马逊云科技上的数据源和外部第三方数据源中检索最新、精准且受到访问控制的数据。在默认情况下,亚马逊云科技Bedrock使用了KMS秘钥服务,加密所有与知识库相关的数据。大家也可以选择使用Customer managed的KMS密钥。在为知识库配置数据提取任务时,还可以使用Custom KMS密钥对任务进行加密。

如果大家想选取OpenSearch Service作为知识库的向量存储,Amazon Bedrock可将大家选择好的 KMS密钥传递给它进行向量数据加密。此外在生成查询知识库响应的会话中,也可以使用KMS密钥对会话进行加密。为了便于安全通信,Amazon Bedrock知识库在与第三方向量存储进行数据交互时,默认使用TLS加密,前提是该服务支持并允许TLS加密传输。

关于用户访问权限控制,亚马逊云科技Bedrock知识库使用筛选来管理对数据的访问权限。大家可以利用文件元数据和过滤功能,在知识库上构建数据隔离访问解决方案。在运行应用时,必须对用户进行身份验证和授权,并在请求中包含该用户的验证信息,以保持准确和一致的访问控制。为了使访问控制持续生效,大家应定期在筛选配置中重新同步配置,以反映用户权限变化。另外用户组也可以作为一个筛选属性,对知识库中的文件进行精细化访问控制。

这种方法有助于解决LLM02:2025敏感信息泄露和LLM08:2025向量与嵌入薄弱性的风险,确保只有授权用户才能访问相关数据。

总结

在本文中,小李哥如何利用亚马逊云科技生成式AI安全合规框架,从亚马逊云科技安全共担责任模型的角度对生成式AI应用分为5大类,对于不同类别我们应用了不同的安全控制。同时我们回顾了一个常见的生成式AI应用的安全架构和最佳实践,再利用OWASP Top 10 for LLM风险评估模型评估了genAI应用安全态势,同时展示了如何利用亚马逊云科技服务有效解决OWASP Top 10 for LLM的常见威胁和风险,从而保护生成式AI应用的系统。想了解更多关于在亚马逊云科技构建安全生成式AI应用和AI安全的信息,欢迎大家关注小李哥不要错过更多精彩文章。

相关文章:

生成式AI安全最佳实践 - 抵御OWASP Top 10攻击 (下)

今天小李哥将开启全新的技术分享系列,为大家介绍生成式AI的安全解决方案设计方法和最佳实践。近年来生成式 AI 安全市场正迅速发展。据IDC预测,到2025年全球 AI 安全解决方案市场规模将突破200亿美元,年复合增长率超过30%,而Gartn…...

2025年家用音响市场分析:潜力无限,音质为王的新纪元

引言:音质革命引领市场新风尚 在数字化浪潮的推动下,家用音响市场正经历一场前所未有的变革,其增长潜力犹如破晓之光,照亮了音频技术的未来之路。随着消费者对高品质生活追求的不断提升,以及对智能家居生态融合的日益…...

neo4j-在Linux中安装neo4j

目录 切换jdk 安装neo4j 配置neo4j以便其他电脑可以访问 切换jdk 因为我安装的jdk是1.8版本的,而我安装的neo4j版本为5.15,Neo4j Community 5.15.0 不支持 Java 1.8,它要求 Java 17 或更高版本。 所以我需要升级Java到17 安装 OpenJDK 17 sudo yu…...

AI 场景下,函数计算 GPU 实例模型存储最佳实践

作者:有松 当前,函数计算 FC 已被广泛应用在各种 AI 场景下,函数计算支持通过使用容器镜像部署 AI 推理应用,并且提供多种选项来访问训练好的模型。为了帮助开发者高效地在函数计算上部署 AI 推理应用,并快速解决不同…...

股指入门:股指期货是什么意思?在哪里可以做股指期货交易?

股指期货是一种以股票指数为标的物的期货合约,也可以称为股票指数期货或期指。 股指期货是什么意思? 股指期货是一种金融衍生品,其标的资产是股票市场上的股指,例如标普500指数、道琼斯工业平均指数、上证50指数等。 股指期货允…...

【分布式理论六】分布式调用(4):服务间的远程调用(RPC)

文章目录 一、RPC 调用过程二、RPC 动态代理:屏蔽远程通讯细节1. 动态代理示例2. 如何将动态代理应用于 RPC 三、RPC 序列化四、RPC 协议编码1. 协议编码的作用2. RPC 协议消息组成 五、RPC 网络传输1. 网络传输流程2. 关键优化点 一、RPC 调用过程 RPC&#xff08…...

aliyun 的 ip 设置方法

aliyun 的 ip 设置方法 阿里云:网络编程 bind:cannot assign requested address errno:99 问题。 公网IP,,弹性公网IP,主私网IP 1. 公网IP, --> NAT --> 主私网IP ,设置方法: 服务器端 ip 为&…...

ASP.NET Core分布式缓存

目录 分布式缓存 概述 IDistributedCache接口中定义的主要方法及主要的扩展方法 用什么做缓存服务器 使用 封装分布式缓存操作 分布式缓存 概述 分布式系统中,内存缓存不满足要求的话,把缓存数据保存到专门的缓存服务器,所有Web应用通…...

【CUDA】内存模型

目录 一、Programmable 1.1 寄存器(Registers) 1.2 本地内存(Local Memory) 1.3 共享内存(shared Memory) 1.4 常量内存(Constant Memory) 1.5 全局内存(Global Memory) 1.6 纹理内存(Textrue Memory) 1.7 总结 二、Cache(Non-programmable) 三、固定内存 四、零拷贝…...

使用Pygame制作“吃豆人”游戏

本篇博客展示如何使用 Python Pygame 编写一个简易版的“吃豆人(Pac-Man)” 风格游戏。这里我们暂且命名为 Py-Man。玩家需要控制主角在一个网格地图里移动、吃掉散布在各处的豆子,并躲避在地图中巡逻的幽灵。此示例可帮助你理解网格地图、角…...

Pyecharts系列课程04——折线图/面积图(Line)

本章我们学习在Pyecharts中折线图(Line)的使用。折线图通用应用于数据的趋势分析。 折线图 我们现在有两组数据,x_data是2024年的月份,y_data为对应张三甲每个月的用电量。 # 家庭每月用电量趋势 x_data ["1月", &q…...

mysql 学习10 多表查询 -多表关系,多表查询

多表关系 一对多 多对多 创建学生表 #多对多表 学生选课系统create table student(id int primary key auto_increment comment 主键ID,name varchar(64) comment 姓名,studentnumber varchar(10) comment 学号 )comment 学生表;insert into student(id,name,studentnumber)va…...

lambda 表达式详解

lambda 表达式详解 lambda 表达式详解基本语法示例代码及详细解释1. 简单的lambda表达式2. 带参数的lambda表达式3. 捕获外部变量4. 使用mutable关键字修改捕获的变量5. 按引用捕获外部变量6. 自动推导返回类型 捕获列表的几种形式总结 Lambda表达式的常用的应用场景&#xff1…...

从0开始达芬奇(3.5)

媒体优化 顾名思义就是降低分辨率等来使素材的回放更加流畅。(在低配电脑上也可以流畅运行) ⭐方法一:(一般使用第二种) 播放→代理模式→二分之一或者四分之一 ⭐⭐⭐方法二:优化媒体文件(简…...

【Uniapp-Vue3】z-paging插件组件实现触底和下拉加载数据

一、下载z-paing插件 注意下载下载量最多的这个 进入Hbuilder以后点击“确定” 插件的官方文档地址: https://z-paging.zxlee.cn 二、z-paging插件的使用 在文档中向下滑动,会有使用方法。 使用z-paging标签将所有的内容包起来 配置标签中的属性 在s…...

Ubuntu20.04 本地部署 DeepSeek-R1

一、下载ollama 打开 ollama链接,直接终端运行提供的命令即可。如获取的命令如下: curl -fsSL https://ollama.com/install.sh | sh确保是否安装成功可在终端输入如下命令: ollama -v注意: 如遇到Failed to connect to github.…...

Linux 设备驱动分类(快速理解驱动架构)

Linux 设备驱动分类(快速理解驱动架构) 在 Linux 设备驱动开发中,最基础的概念就是 设备驱动的分类。 Linux 设备驱动主要分为 字符设备、块设备和网络设备,它们分别对应不同类型的硬件资源。 理解这些分类,不仅能帮助…...

Java语法糖详解

前言 在现代编程语言的发展历程中,语法糖(Syntactic Sugar)作为一种提升代码可读性和开发效率的重要特性,已经成为语言设计的重要组成部分。Java作为一门成熟且广泛应用的编程语言,在其长期演进过程中,语法…...

567.字符串的排列

目录 一、题目二、思路2.1 解题思路2.2 代码尝试2.3 疑难问题 三、解法四、收获4.1 心得4.2 举一反三 一、题目 二、思路 2.1 解题思路 用两个哈希表比较来判断。s1的哈希表是否与s2相同。在窗口滑动过程中,用哈希表来维护。 2.2 代码尝试 class Solution { pub…...

DB2和mysql关于表和索引是否需要reorg的研究

DB2: DB2有个reorgchk的命令,是从SYSSTAT.TABLES和syscat.indexes这两个系统表中查表和索引的信息,并给出是否需要reorg表和索引的建议。 [db2inst1t3-ucm-ucm-rdb ~]$ db2 reorgchk CURRENT STATISTICS on table DB2ADMIN.ACAGENTTREE Ta…...

【Linux系统编程】:自旋锁,读写锁

文章目录 前言1. POSIX自旋锁1.1.定义自旋锁1.2.初始化1.3. 加锁1.4. 尝试加锁操作1.5. 解锁操作1.6. 销毁操作1.7.示例1.8.优缺点优点缺点 1.9.适用场景 2. 读写锁2.1 读写锁的工作原理2.2 读写模型2.3 常用接口2.3.1 定义锁并初始化2.3.2 申请读锁2.3.3 申请写锁2.3.4 解锁2.…...

位运算及常用技巧

涉及位运算的运算符如下表所示: 位运算的运算律: 负数的位运算 首先,我们要知道,在计算机中,运算是使用的二进制补码,而正数的补码是它本身,负数的补码则是符号位不变,其余按位取反…...

Chrome 浏览器:互联网时代的浏览利器

Chrome 浏览器:互联网时代的浏览利器 引言 在互联网时代,浏览器已经成为我们日常生活中不可或缺的工具。作为全球最受欢迎的浏览器之一,Chrome 浏览器凭借其出色的性能、丰富的扩展程序和简洁的界面,赢得了广大用户的喜爱。本文…...

web-文件上传-CTFHub

前言 在众多的CTF平台当中,作者认为CTFHub对于初学者来说,是入门平台的不二之选。CTFHub通过自己独特的技能树模块,可以帮助初学者来快速入门。具体请看官方介绍:CTFHub。 作者更新了CTFHub系列,希望小伙伴们多多支持…...

【react】react面试题

react面试题 对 React 的理解、特性 react18有哪些更新 JSX是什么 解释为什么浏览器不能读取jsx ReactNative中,如何解决8081端口被占用而提示无法访问的问题? React 生命周期 react事件机制 react 组件传值 React改变state的方式 re…...

逐笔成交逐笔委托Level2高频数据下载和分析:20250206

Level2逐笔成交逐笔委托数据分享下载 通过Level2逐笔成交和逐笔委托这种每一笔的毫秒级别的数据可以分析出很多有用的点,包括主力意图,虚假动作,让任何操作无所遁形。适合交易大师来分析主力规律,也适合人工智能领域的机器学习&a…...

__cvta_generic_to_shared

一 测试代码 #include <cuda_runtime.h> #include <cstdio> #include <cstdint>__global__ void test_cp_async(int* __restrict__ A,int* __restrict__ B){int tid = threadIdx.x;A[tid] = tid;__shared__ int smem[32];size_t smemAddr = __cvta_generic_…...

C++学习——缺省参数、重载函数、引用

目录 前言 一、缺省参数 1.1概念 1.2写法 1.3半缺省 1.4使用 二、重载函数 2.1.概念 2.2类型 2.3参数 2.4顺序 2.5问题 2.6原理 三、引用 1、引用是什么&#xff1f; 2、引用的使用方法 3、引用特性 1、引用在定义的时候必须要初始化 2、一个变量会有多个引用…...

docker-compose 配置nginx

前言 前端打包的dist文件在宿主机&#xff0c;nginx运行在docker-compose 问题 nginx.conf 在本地配置可以生效&#xff0c;但是链接到容器就报错 基于本地的nginx运行&#xff0c;本地nginx.conf 如下 server {listen 8081;location / {root /usr/local/software/testweb/…...

LQB(0)-python-基础知识

一、Python开发环境与基础知识 python解释器&#xff1a;用于解释python代码 方式&#xff1a; 1.直接安装python解释器 2.安装Anaconda管理python环境 python开发环境&#xff1a;用于编写python代码 1.vscode 2.pycharm # 3.安装Anaconda后可以使用网页版的jupyter n…...

【C语言】指针运算与数组关系:详细分析与实例讲解

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C语言 文章目录 &#x1f4af;前言&#x1f4af;1. 指针的基础运算1.1 指针的加减运算1.2 指针加整数与指针减整数1.3 指针与指针的运算 &#x1f4af;2. 指针的实际应用&#xff1a;模拟 strlen 函数2.1 使用指针模拟…...

C++数组

指针&#xff0c;是C数组工作方式的基础。 数组&#xff0c;基本上是元素的集合。按特定的顺序排列的一堆东西。 C数组&#xff0c;就是表示一堆的变量组成的集合。一般是一行相同类型的变量。 例子&#xff1a; #include <iostream> int main() {int example[5];exa…...

OSPF基础(2)

一、LSA的头部 LSA是OSPF的一个核心内容&#xff0c;如果没有LSA&#xff0c;OSPF是无法描述网络的拓扑结构及网段信息的,也无法传递路由信息&#xff0c;更加无法正常工作&#xff0c;在OSPFV2中&#xff0c;需要我们掌握的主要有6种。 LSA头部一共20byte&#xff0c;每个字段…...

DeepSeek R1 简单指南:架构、训练、本地部署和硬件要求

DeepSeek 的 LLM 推理新方法 DeepSeek 推出了一种创新方法&#xff0c;通过强化学习 (RL) 来提高大型语言模型 (LLM) 的推理能力&#xff0c;其最新论文 DeepSeek-R1 对此进行了详细介绍。这项研究代表了我们如何通过纯强化学习来增强 LLM 解决复杂问题的能力&#xff0c;而无…...

javaEE-6.网络原理-http

目录 什么是http? http的工作原理&#xff1a; 抓包工具 fiddler的使用 HTTP请求数据: 1.首行:​编辑 2.请求头(header) 3.空行&#xff1a; 4.正文&#xff08;body&#xff09; HTTP响应数据 1.首行&#xff1a;​编辑 2.响应头 3.空行&#xff1a; 4.响应正文…...

把bootstrap5.3.3整合到wordpress主题中的方法

以下是将 Bootstrap 5.3.3 整合到 WordPress 主题中的方法&#xff1a; 下载 Bootstrap 文件&#xff1a;从 Bootstrap 官网下载最新的 5.3.3 版本的 CSS 和 JavaScript 文件。 上传文件到主题目录&#xff1a;将下载的 CSS 文件上传到 WordPress 主题文件夹中的 /css 文件夹…...

深度整理总结MySQL——Buffer Pool工作原理

Buffer Pool工作原理 前言为什么会有Buffer PoolBuffer Pool介绍Buffer Pool有多大Buffer Pool缓存什么呢Buffer Pool碎片空间查询一条记录&#xff0c;就只需要缓冲一条记录吗 如何管理Buffer Pool如何管理空闲页如何管理脏页如何提高缓存命中率 LRU带来的问题预读失效Buffer …...

langchain教程-9.Retriever/检索器

前言 该系列教程的代码: https://github.com/shar-pen/Langchain-MiniTutorial 我主要参考 langchain 官方教程, 有选择性的记录了一下学习内容 这是教程清单 1.初试langchain2.prompt3.OutputParser/输出解析4.model/vllm模型部署和langchain调用5.DocumentLoader/多种文档…...

凝思60重置密码

凝思系统重置密码 - 赛博狗尾草 - 博客园 问题描述 凝思系统进入单用户模式&#xff0c;在此模式下&#xff0c;用户可以访问修复错误配置的文件。也可以在此模式下安装显卡驱动&#xff0c;解决和已加载驱动的冲突问题。 适用范围 linx-6.0.60 linx-6.0.80 linx-6.0.100…...

指针基础知识1

1.内存和地址 1.案例 我们可以借助一个生活在的案例来熟悉电脑中内存和地址的关系&#xff1a; 假设有⼀栋宿舍楼&#xff0c;把你放在楼里&#xff0c;楼上有100个房间&#xff0c;但是房间没有编号&#xff0c;你的⼀个朋友来找你玩&#xff0c; 如果想找到你&#xff0c;…...

大数据学习之Spark分布式计算框架RDD、内核进阶

一.RDD 28.RDD_为什么需要RDD 29.RDD_定义 30.RDD_五大特性总述 31.RDD_五大特性1 32.RDD_五大特性2 33.RDD_五大特性3 34.RDD_五大特性4 35.RDD_五大特性5 36.RDD_五大特性总结 37.RDD_创建概述 38.RDD_并行化创建 演示代码&#xff1a; // 获取当前 RDD 的分区数 Since ( …...

Windows本地部署DeepSeek-R1大模型并使用web界面远程交互

文章目录 前言1. 安装Ollama2. 安装DeepSeek-r1模型3. 安装图形化界面3.1 Windows系统安装Docker3.2 Docker部署Open WebUI3.3 添加Deepseek模型 4. 安装内网穿透工具5. 配置固定公网地址 前言 最近爆火的国产AI大模型Deepseek详细大家都不陌生&#xff0c;不过除了在手机上安…...

【Linux系统】线程:线程控制

一、POSIX线程库 与线程有关的函数构成了一个完整的系列&#xff0c;绝大多数函数的名字都是以“pthread_”打头的。使用这些函数库&#xff0c;要通过引入头文件 <pthread.h>。链接这些线程函数库时要使用编译器命令的 -lpthread 选项。 二、轻量级进程创建&#xff1a…...

GoFrame 微服务开发指南

基本介绍 GoFrame 框架支持微服务模式开发&#xff0c;提供了常用的微服务组件、开发工具、开发教程帮助团队快速微服务转型。 微服务组件简介 GoFrame 微服务组件具有低耦合及通用化设计&#xff0c;组件化使用支持大部分的微服务通信协议。在官方文档中&#xff0c;主要以…...

Python-基于PyQt5,Pillow,pathilb,imageio,moviepy,sys的GIF(动图)制作工具(进阶版)

前言&#xff1a;在抖音&#xff0c;快手等社交平台上&#xff0c;我们常常见到各种各样的GIF动画。在各大评论区里面&#xff0c;GIF图片以其短小精悍、生动有趣的特点&#xff0c;被广泛用于分享各种有趣的场景、搞笑的瞬间、精彩的动作等&#xff0c;能够快速吸引我们的注意…...

PhpStorm下载、安装、配置教程

前面的文章中&#xff0c;都是把.php文件放在WampServer的www目录下&#xff0c;通过浏览器访问运行。这篇文章就简单介绍一下PhpStorm这个php集成开发工具的使用。 目录 下载PhpStorm 安装PhpStorm 配置PhpStorm 修改个性化设置 修改字符编码 配置php的安装路径 使用Ph…...

春节假期旅游热潮下,景区医疗安全如何全面升级?

春节假期旅游热潮下&#xff0c;景区医疗安全如何全面升级&#xff1f; 随着旅游业的不断繁荣&#xff0c;春节假期期间&#xff0c;各大景区再次迎来了游客的高峰期。面对如此庞大的客流量&#xff0c;景区不仅要在服务接待上下功夫&#xff0c;更要将医疗安全保障工作提升到…...

惠普HP工作站如何关闭关闭RAID?

惠普HP工作站如何关闭关闭RAID&#xff1f; 前言进入BIOS进入“先进”选项卡&#xff0c;点击“系统选项”。取消勾选“sSATA控制器RAID模式”&#xff0c;按下F10保存重启。 前言 惠普工作站默认启用了RAID模式&#xff0c;导致许多PE工具无法识别RAID模式下的硬盘。可以通过…...

ESP-Skainet智能语音助手,ESP32-S3物联网方案,设备高效语音交互

在科技飞速发展的今天&#xff0c;智能语音助手正逐渐渗透到我们生活的方方面面&#xff0c;而智能语音助手凭借其卓越的技术优势&#xff0c;成为了智能生活领域的一颗璀璨明星。 ESP-Skainet智能语音助手的强大之处在于其支持唤醒词引擎&#xff08;WakeNet&#xff09;、离…...

mac下生成.icns图标

笔记原因&#xff1a; 今日需要在mac下开发涉及图标文件的使用及icons文件的生成&#xff0c;所以记录一下。 网络上都是一堆命令行需要打印太麻烦了&#xff0c;写一个一键脚本。 步骤一 将需要生成的png格式文件重命名为“pic.png” mv xxxx.png pic.png 步骤二 下载我…...