Spring AI 核心概念
本文是对Spring AI
中涉及到的AI相关核心概念的介绍,笔者结合LangChain
、LlamaIndex
的使用经验,尝试尽可能清晰的把这些概念解释清楚. 读者也可以参考官方文档作为补充.
模型
提到AI模型,我们的第一印象一定是GPT
,DeepSeek
这样的大语言模型(Large Language Models,LLMs),但其实还有其他的种类.
我们引用Spring AI文档的说法:
AI models are algorithms designed to process and generate information, often mimicking human cognitive functions.
AI模型是用于处理和生成信息的算法,通常模仿人类的认知功能。
我们所熟悉的Chat/文字生成的LLMs
是其中的一种,平时还经常用到的有生成图片的模型Diffusion
, 语音识别和语音合成模型ASR
,TTS
, Agents背后的知识库RAG技术的重要组件Embedding
模型等,分别都在各自领域发挥重要作用.(P.S.:笔者从事的数字人开发核心组件神经辐射场NeRF
也是一种重要的模型,被广泛运用在视频生成,自动驾驶等领域)
下图是Spring AI支持的模型类型:
Spring AI 现在支持输入/输出为文字,图片,音频的模型.
图片中最后一行的Embedding模型比较特殊,输入可以时文字、图片、音频,设置视频,输出是一个向量(称为嵌入,原因是,这个向量中包含了对于输入的很多特征信息的捕捉,可以认为是把特征信息嵌入到了向量中).
嵌入(Embedding
)模型的代表是SentenceTransformer
框架的一系列Bi-Encoder
,CrossEncoder
models,通常是基于BERT
这样的encoder-only
结构,但GPT
(Generative Pretrained Transoformer)这样的decoder-only
结构也用应用,两种架构都可以归类于Transformer
(P.S. 完整的Transformer架构是encoder-decoder结合的,但BERT
和GPT
都只用了其中一部分).
输入经过嵌入模型的处理得到的向量可以用来做分类,情感分析等.
提示词
提示词(Prompt)是和LLMs
交互中用的最多的,我们都有和Chat模型聊天的经验,并且也一定通过Chat模型来完成过一系列任务,例如翻译,文字改写、总结等. 我们的输入都可以认为是一种提示词,用来指导LLMs
完成我们给出的特定任务.
Prompts serve as the foundation for the language-based inputs that guide an AI model to produce specific outputs.
提示词(Prompts)是基于语言的输入的基础,用于指导AI模型生成特定的输出。
在调用LLMs的API进行交互的时候,和用WebUI Chat稍有不同,可以看一个OpenAI的官方例子就一目了然.
from openai import OpenAI
client = OpenAI()response = client.responses.create(model="gpt-4.1",input=[{"role": "developer","content": "Talk like a pirate."},{"role": "user","content": "Are semicolons optional in JavaScript?"}]
)print(response.output_text)
从这个例子中我们可以看到,输入可以是一个数组,而数组中的每个对象是包括了role
,content
两个字段,content是我们的命令,而role是代表当前这个命令的角色(例如system角色就设定了对话中模型需要表现的行为和一些全局的上下文). 常用的role有 system
,assistant
,user
等,具体可以查看所调用的LLM
的文档.
提示词模板
创建有效的提示词涉及建立请求的上下文,并将请求中的部分内容替换为用户输入特定的值。
为了高效的创建提示词并且复用公共的部分,几乎所有的AI应用框架都提供了提示词模板的功能。
官方给的提示词模板的例子:
Tell me a {adjective} joke about {content}.
这里的{}
内的变量可以在模板生成字符串的时候被替换.
在 Spring AI 中,提示词模板可以类比为 Spring MVC
架构中的“视图”(View)。通常会提供一个模型对象(model object),例如一个 java.util.Map
,用于填充模板中的占位符。经过“渲染”后的字符串将成为提供给 AI 模型的提示内容。
发送到模型的提示的具体数据格式存在相当大的差异。最初,提示只是简单的字符串,但随着时间的推移,提示已经发展为包含多条消息,其中每条消息中的每个字符串都代表模型的一个不同角色。
Embedding
嵌入(Embeddings)是文本、图像或视频的数值表示,能够捕捉输入之间的关系。
嵌入的工作原理是将文本、图像和视频转换为浮点数数组,称为向量。这些向量旨在捕捉文本、图像和视频的含义。嵌入数组的长度称为向量的维度。
通过计算两段文本的向量表示之间的数值距离,应用程序可以确定用于生成嵌入向量的对象之间的相似性。
作为Java 开发者,其实没有必要去理解这些向量表示背后的复杂数学理论或具体实现。只要对它们在人工智能系统中的角色和功能有一个基本的了解就足够.
嵌入(Embeddings)在实际应用中还是能发挥很大作用的,例如前文所述. 在检索增强生成(Retrieval Augmented Generation, RAG)模式中, 它们能够将数据表示为语义空间中的点,这类似于欧几里得几何中的二维空间,但维度更高(BERT系列通常维度有768)。这意味着,就像欧几里得几何中平面上的点可以根据其坐标彼此靠近或远离一样,在语义空间中,点的接近程度反映了它们在含义上的相似性。关于相似主题的句子在这个多维空间中会被放置得更接近,就像图表上彼此靠近的点一样。这种接近性有助于执行诸如文本分类、语义搜索甚至产品推荐等任务,因为它允许人工智能根据这些概念在扩展的语义景观中的“位置”来识别和分组相关概念。
Token
只要调用过LLMs API,就或多或少会听说过token的概念。token可以近似理解成单词,但是注意它不是单词.
先补充一下相关背景:
“Tokenize” 是一个在自然语言处理(NLP)和计算机科学中常用的术语,指的是将文本分割成更小的单元(称为“token”)的过程。这些单元可以是单词、数字、符号或其他有意义的片段。Tokenization 是文本预处理的重要步骤,为后续的文本分析、机器学习或深度学习任务做准备。
在NLP
领域早期的分词(tokenize)处理中,的确是按照单词去切分(英语等印欧语系,单词被空格分开),但是随着词嵌入技术的发展,需要处理一些没有见过的词,即未登录词(Out-of-Vocabulary, OOV), 此时,按照统计来确定词表的方法就效果不好,于是开始通过一些算法来把单词进一步切分为词元,也就是这里的token,具体原理和算法就不在这里展开,huggingface上有具体的说明.
Token是人工智能模型工作方式的基本组成部分。在输入时,模型将单词转换为标记;在输出时,它们将标记再转换回单词。
在英语中,一个标记大致对应于一个单词的75%。作为参考,莎士比亚的全部作品,总共约90万单词,转换成大约120万标记。
也许更重要的是,标记 = 金钱。在托管的人工智能模型的上下文中,你的费用是由使用的标记数量决定的。输入和输出都对总标记数量有贡献。
此外,模型还受到标记限制,这限制了单次API调用中处理的文本量。这个阈值通常被称为“上下文窗口”。超出这个限制的文本将不会被模型处理。
结构化输出
人工智能模型的输出通常是一个java.lang.String
(在当前我们讨论的Spring AI领域中,如果是讨论LangChain
,那么输出的就是一个python字符串了),即使你要求回复是JSON
格式也是如此。它可能是一个正确的JSON
,但它并不是一个JSON
数据结构,只是一个字符串。此外,将“要求输出为JSON
”作为提示的一部分也并不是100%准确的。
P.S.:LangChain提供了JsonOutputParser
来将输出转为JSON
这种复杂性促使了一个专门领域的出现,该领域涉及创建能够产生预期输出的提示,然后将生成的简单字符串转换为可用于应用程序集成的可用数据结构。
模型能力的增强
LLMs只会掌握它的训练数据的知识,然而事物是一直在发展的,如何让模型利用最新的知识,当前主要有3种方法:
- 微调(Fine Tuning):这种传统的机器学习技术涉及调整模型并改变其内部权重。然而,对于像GPT这样规模庞大的模型来说,这是一个对机器学习专家来说极具挑战性且极其耗费资源的过程。此外,有些模型可能根本不提供这种选项;
- 提示嵌入(Prompt Stuffing):这是一种更实用的替代方法,涉及将你的数据嵌入到提供给模型的提示中。鉴于模型的标记限制,需要采用技术手段将相关数据呈现于模型的上下文窗口内。这种方法通常被称为“填充提示”(stuffing the prompt)。Spring AI库可以帮助你实现基于“填充提示”技术的解决方案,这种技术也被称为检索增强生成(Retrieval Augmented Generation,简称RAG);
- 工具调用(Tool Calling):这种技术允许注册工具(用户定义的服务),将大型语言模型连接到外部系统的API。Spring AI极大地简化了支持工具调用所需的代码编写.
RAG
检索增强生成(Retrieval Augmented Generation,简称RAG)旨在解决如何将相关数据整合到提示中以实现准确的人工智能模型响应。
这种方法采用批处理风格的编程模型,主工作流程是从文档中读取非结构化数据,对其进行转换,然后将其写入向量数据库。总的来看,这是一个ETL
(提取、转换和加载)流程。向量数据库用于RAG技术的检索部分。
在将非结构化数据加载到向量数据库的过程中,最重要的转换之一是将原始文档拆分成更小的部分。将原始文档拆分成更小部分的过程包含两个重要步骤:
- 在拆分文档时,要保留内容的语义边界。例如,对于包含段落和表格的文档,应避免在段落或表格的中间进行拆分。对于代码,应避免在方法实现的中间进行拆分。
- 将文档的各个部分进一步拆分成大小仅为人工智能模型令牌限制的小百分比的部分。
RAG的下一个阶段是处理用户输入。当用户的问题需要由人工智能模型回答时,问题以及所有“相似”的文档片段都会被放入发送给人工智能模型的提示中。这就是使用向量数据库的原因,它非常擅长找到相似的内容。
ETL流程进一步介绍了如何协调从数据源提取数据并将其存储到结构化的向量存储库中的流程,确保数据在传递给人工智能模型时处于最佳检索格式。
ChatClient - RAG解释了如何使用QuestionAnswerAdvisor在您的应用程序中启用RAG功能。
更多细节可以参考Spring AI的详细文档.
工具调用
LLMs在训练完成后会被冻结,这导致其知识陈旧,且无法访问或修改外部数据。
工具调用机制解决了这些缺点。它允许你将自有的服务注册为工具,从而将大型语言模型连接到外部系统的API。这些系统可以为LLMs提供实时数据,并代表它们执行数据处理操作。
Spring AI
极大地简化了支持工具调用所需的代码。它为你处理工具调用对话。你可以将工具作为带有@Tool
注解的方法提供,并在提示选项中提供它,使其可供模型使用。此外,你还可以在单个提示中定义和引用多个工具。具体步骤如下:
-
当我们希望将工具提供给模型时,我们会将其定义包含在聊天请求中。每个工具定义包括名称、描述以及输入参数的模式。
-
当模型决定调用工具时,它会发送一个包含工具名称和符合定义模式的输入参数的响应。
-
应用程序负责使用工具名称来识别并执行工具,并使用提供的输入参数。
-
工具调用的结果由应用程序处理。
-
应用程序将工具调用的结果发送回模型。
-
模型使用工具调用结果作为附加上下文生成最终响应。
模型评估
有效评估人工智能系统对用户请求的输出对于确保最终应用的准确性和实用性至关重要。一些新兴技术使得可以利用预训练模型本身来实现这一目的。
这种评估过程涉及分析生成的响应是否与用户的意图以及查询的上下文一致。相关性、连贯性和事实正确性等指标被用来衡量人工智能生成响应的质量。
一种方法是将用户的请求和人工智能模型的响应同时呈现给模型,查询该响应是否与提供的数据一致。
此外,利用存储在向量数据库中的信息作为补充数据,可以增强评估过程,有助于确定响应的相关性。
Spring AI项目提供了一个评估器API,目前该API提供了用于评估模型响应的基本策略。请参阅评估测试文档以获取更多信息。
总结
本文介绍了Spring AI中和AI模型相关的核心概念并且适当做了一些科普性扩展,希望对大家使用Spring AI开发应用有所帮助.
相关文章:
Spring AI 核心概念
本文是对Spring AI中涉及到的AI相关核心概念的介绍,笔者结合LangChain、LlamaIndex的使用经验,尝试尽可能清晰的把这些概念解释清楚. 读者也可以参考官方文档作为补充. 模型 提到AI模型,我们的第一印象一定是GPT,DeepSeek这样的大语言模型(…...
第53.5讲 | 小项目实战:用 SHAP 值解释农作物产量预测模型 [特殊字符][特殊字符]
目录 ✅ 项目背景 📦 所用工具 📁 数据字段(模拟) 🧑💻 代码实现步骤 🎯 解读与启发 🧠 项目拓展建议 ✅ 项目背景 我们使用一个简化的玉米产量数据集(可模拟实…...
Linux编译器-gcc/g++使用
1.预处理(进行宏替换) -E开始进行程序编译,在预处理做完的时候,停下来 2.编译(生成汇编) -S 开始编译,编译做完了就停下来 3.汇编(生成机器可识别代码) -c 开始翻译汇编…...
SEO的关键词研究与优化 第二章
回顾上一篇文章, 3. 关键词评估和选择 关键词评估和选择是SEO策略中至关重要的一步。这个过程不仅仅是选择搜索量最高的词,而是要在多个因素之间找到平衡,以确定最有价值的关键词。 3.1 搜索量分析 搜索量是评估关键词潜力的首要指标,但它不应…...
数据结构数组
数组特点 内存是连续的,所以地址可以偏移,支持下标访问。 优点 下标访问(随机访问)的时间复杂度是O(1),末尾增加和删除元素的时间复杂度是O(1)。 访问元素前后相邻位置方便,因为数组每个位置内存是连续的ÿ…...
vscode插件系列-2、认识vscode
这一章,我将带你重新认识vscode 一、工作区划分 1、活动条(Activity Bar) 活动条是一个核心的导航,扩展可以通过在View Containers中配置,从而渲染Views中的视图。 具体来说就是在package.json中配置如下&…...
Java学习手册:TCP 协议基础
一、TCP 协议概述 TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它在 IP 协议的基础上提供了可靠的 数据传输服务。TCP 通过三次握手建立连接,通过四次挥手…...
摘要 | 李录在北大光华管理学院的演讲《价值投资》
李录在北大光华管理学院的演讲《价值投资》是中文投资领域极具影响力的经典内容,尤其是2019年11月的演讲版本。该演讲视频时长90分钟,主要内容围绕价值投资的理论框架、实践难点以及在中国市场的应用展开。以下是该演讲的核心要点解析: 一、价…...
让Docker端口映射受Firewall管理而非iptables
要让Docker容器的端口映射受系统防火墙(如firewalld或ufw)管理,而不是直接通过iptables,可以按照以下步骤配置: 方法一:禁用Docker的iptables规则 (1)编辑Docker配置文件: vi /etc/docker/da…...
数据库数据删除与修改实验
数据库数据删除与修改实验 在数据库原理的学习中,数据的删除与修改是核心操作技能。通过“删除修改数据”实验,我系统实践了 SQL 中 UPDATE 和 DELETE 语句的多种应用场景,从基础语法到复杂业务逻辑处理,积累了丰富的实战经验。本…...
多回路电表如何革新电力监控?安科瑞技术深度解析
安科瑞顾强 安科瑞电气股份有限公司作为国内领先的能源管理方案提供商,其多回路智能电表系列(如AMC200、AMC300L、ADW200-D10-4S等)凭借多回路计量、高精度测量、无线物联等核心优势,在工业、商业及智能电网领域广泛应用。以下从…...
【云计算】云计算中IaaS、PaaS、SaaS介绍
0 随着云计算、大数据、人工智能发展迅速,布局“云”已经是互联网企业共识。云计算的服务类型分为三种,分别为IaaS、PaaS、SaaS,这三个分别是什么意思,今天做一个简单的介绍和了解。 一、云计算 云计算是用户需求通过Internet获…...
Ubuntu中选择Python虚拟环境
背景 在Ubuntu系统中,如果希望通过一个简单的命令(例如activate)快速查找并激活Python虚拟环境,是可以通过Bash脚本实现的。该脚本的核心功能包括:递归扫描用户家目录(~)中所有非隐藏文件夹&am…...
Nginx 安装与配置全流程指南(2025 最新版)
一、环境准备与依赖安装 1.1 系统要求 操作系统:支持主流 Linux 发行版(Ubuntu 20.04/CentOS 7/Debian 10)硬件配置:内存 ≥512MB,磁盘 ≥10GB 可用空间(建议使用 SSD)网络要求:开…...
WAMP设置外网访问
系统:windows 软件:wampserver 设置允许外网访问 1.修改apache的httpd-vhosts.config # Virtual Hosts # <VirtualHost _default_:80>ServerName localhostServerAlias localhostDocumentRoot "${INSTALL_DIR}/www"<Directory "…...
NXP----SVR5510芯片layout设计总结
1,Pinout Information: VR5510是S32G应用处理器的拟议电源管理集成电路(PMIC)。它是一款汽车多输出PMIC,主要用于网关、ADAS、V2X和信息娱乐应用。下面的方框图展示了其主要特点。 2,封装设计&…...
面试之消息队列
消息队列场景 什么是消息队列? 消息队列是一个使用队列来通信的组件,它的本质就是个转发器,包含发消息、存消息、消费消息。 消息队列怎么选型? 特性ActiveMQRabbitMQRocketMQKafka单机吞吐量万级万级10万级10万级时效性毫秒级…...
[创业之路-386]:企业法务 - 知识产权的刑事风险
知识产权的刑事风险是指因侵犯他人知识产权而可能面临的刑事法律责任。 对于初创公司而言,了解并防范此类风险至关重要,以下从不同知识产权类型展开详细分析: 一、侵犯商标权的刑事风险 风险表现:未经注册商标所有人许可&#…...
Freertos----中断管理
一、中断概念 在RTOS中,需要应对各类事件。这些事件很多时候是通过硬件中断产生,怎么处理中断呢? 假设当前系统正在运行Task1时,用户按下了按键,触发了按键中断。这个中断的处理流程如下: CPU跳到固定地…...
4.4 记忆机制与上下文管理:短期与长期记忆的设计与应用
记忆机制与上下文管理已成为智能代理(Agent)系统实现高效、智能化行为的核心技术。记忆机制通过短期记忆(Short-Term Memory, STM)和长期记忆(Long-Term Memory, LTM)支持Agent存储、检索和利用信息&#x…...
ERROR: x264 not found using pkg-config
x264 编译加上了参数,–prefix/usr/local/x264/,找不到x264.pc ffmpeg安装过程中configure报错: sudo ./configure --enable-gpl --enable-libx264 --enable-shared --extra-ldflags-L/usr/lib --extra-cflags-I/usr/include --pkg-config“…...
SpringBoot 封装统一API返回格式对象 标准化开发 请求封装 统一格式处理
统一HTTP请求代码 public class HttpCode {/*** 操作成功*/public static final int SUCCESS 200;/*** 对象创建成功*/public static final int CREATED 201;/*** 请求已经被接受*/public static final int ACCEPTED 202;/*** 操作已经执行成功,但是没有返回数据…...
架构-系统可靠性分析与设计
一、可靠性相关基本概念 1. 可靠性与可用性 可靠性:软件系统在遇到错误、意外操作或系统故障时,仍能维持自身功能特性的能力。 举例:手机银行APP在用户误操作(如快速点击多次转账)时,仍能正确处理交易并避…...
Tailwind CSS 初学者入门指南:项目集成,主要变更内容!
网站名称类型网址Tailwind CSS 官方文档官方文档https://tailwindcss.com/docsTailwind Play在线编辑器https://play.tailwindcss.com/Tailwind Awesome资源集合https://www.tailwindawesome.com/Tailwind CSS 中文文档中文文档https://www.tailwindcss.cn/komavideo/LearnTail…...
HOJ.单词统计
目录 题目算法标签: 模拟, 字符串操作思路代码*后续 A C AC AC代码 题目 一段英语短文的内容记录于 lines 中,每行输入 lines[i] 仅包含 a-z , . , -,即英文小写字母,空格,逗号,句号和续行符。 请统计单词数量&#…...
C++ round 函数笔记 (适用于算法竞赛)
在算法竞赛中,处理浮点数并将其转换为整数是常见的需求,round 函数是标准库提供的用于执行“四舍五入”到最近整数的工具。理解其工作方式和潜在问题对于避免错误至关重要。 1. 基本用法 头文件 要使用 round 函数,需要包含 <cmath>…...
远程访问服务器的Jupyter Notebook
在 Linux 服务器上安装 Jupyter Notebook 可以直接调用服务器资源,适合处理大规模数据处理、复杂模型训练等计算密集型任务,避免本地设备算力不足的限制。 一、安装 Jupyter Notebook(在服务器上) 激活 conda 环境安装 conda install jupyter notebook 关于安装命名 1.…...
DNS实验
DNS原理 客户端发起请求:客户端向本地 DNS 服务器发送域名解析请求,这是流程的起始点。本地 DNS 服务器查询根域名服务器:若本地 DNS 服务器缓存中无对应记录,它向根域名服务器发起查询,根域名服务器是 DNS 系统顶层&a…...
SQL实战:02之连续数问题求解
文章目录 概述题目:体育馆的人流量题解步骤一:构造出一个连续序列步骤二:找出符合条件的组的序号步骤三:fetch结果,使用内连接过滤出符合条件的记录。完整SQL 题目二:连续出现的数字题解步骤一:分区并构建连…...
【C++】STL之deque
deque Deque 的底层既不直接依赖 vector 也不依赖 list,而是结合了两者的思想,采用了一种分块(chunk)存储与动态指针数组(map)结合的结构。以下是详细分析: 1. 底层结构设计 Deque 的核心设计…...
HTB - BigBang靶机记录
HTB - BigBanghttps://mp.weixin.qq.com/s/D7yR00kHdiIfoOFk_jHa9w...
AI时代的能力重构与终身进化
在数字技术加速迭代、职业边界日益模糊的当下,自我提升已从“阶段式学习”演变为“持续性进化”。这一转型的底层逻辑在于:个体能力需从“知识积累”转向“能力重构”,以适应AI技术重塑的社会分工与价值创造模式。本文将从认知升级、技能进化、生态构建三个维度,解析AI时代…...
Java—— 正则表达式 方法及捕获分组
识别正则表达式的方法 方法名说明public String[] matches(String regex) 判断字符串是否满足 正则表达式的规则 public string replaceAll(String regex,string newstr) 按照正则表达式的 规则进行替换 public string[] split(String regex) 按照正则表达式的 规则切割字符串…...
《100天精通Python——基础篇 2025 第2天:Python解释器安装与基础语法入门》
目录 一、Windows安装Python1.1 下载并安装 Python1.2 测试安装是否成功 二、Linux系统安装Python(新手可以跳过)2.1 基于RockyLinux系统安装Python(编译安装)2.2 基于Ubuntu系统安装Python(编译安装)2.3 macOS 安装python解释器 三、如何运行Python程序?3.1 Python…...
Linux平台实现低延迟的RTSP、RTMP播放
在流媒体播放器的开发过程中,RTSP(实时流协议)和RTMP(实时消息协议)是广泛应用的流媒体协议。本博客将介绍如何使用大牛直播SDK实现一个Linux平台下的RTSP/RTMP播放器。大牛直播SDK的Linux平台播放SDK,支持…...
安宝特案例 | AR技术在院外心脏骤停急救中的革命性应用
00 案例背景 在院外心脏骤停 (OHCA) 的突发救援中,时间与效率直接决定着患者的生命。传统急救模式下,急救人员常通过视频或电话与医院医生进行沟通,以描述患者状况并依照指令行动。然而,这种信息传递方式往往因信息不完整或传递延…...
chili3d调试笔记9 参数化建模+ai生成立方体
mainwindow 怎么渲染boxnode https://github.com/ticket180/chili3d chili3d ai画立方体...
天梯——L1-110 这不是字符串题
代码 #include<bits/stdc.h> using namespace std; int main(){int n,m;cin>>n>>m;string s;for(int i0;i<n;i){int x;cin>>x;schar(x0);}while(m--){int x;cin>>x;if(x1){int l1;string s1;cin>>l1;for(int i0;i<l1;i){int a;cin&…...
React在什么情况下需要用useReducer
在 React 中,useReducer 是一个用于管理复杂状态逻辑的 Hook。它是 useState 的替代方案,适用于状态更新逻辑复杂或状态之间相互关联的场景。 什么时候需要使用 useReducer 状态更新逻辑复杂: 如果状态更新涉及多个操作或有复杂的逻辑&#x…...
要从给定的数据结构中提取所有的 itemList 并将其放入一个新的数组中
const data [{id:1,itemList:[{id:1-1,list:0},{id:1-2,list:0}]},{id:2,itemList:[{id:2-1,list:0}]} ]使用 forEach const newItemList [];data.forEach(item > {newItemList.push(...item.itemList); });console.log(newItemList);reduce const newItemList data.re…...
程序员鱼皮最新项目-----AI超级智能体教程(一)
文章目录 1.前言1.什么是AI大模型2.什么是多模态3.阿里云百炼平台介绍3.1文本调试展示3.2阿里云和dashscope的关系3.3平台智能体应用3.4工作流的创建3.5智能体编排应用 1.前言 最近鱼皮大佬出了一套关于这个AI 的教程,关注鱼皮大佬很久了,鱼皮大佬确实在…...
17.磁珠在EMC设计中的运用
磁珠在EMC设计中的运用 1. 磁珠的高频等效特性2. 磁珠的参数分析与选型3. 磁珠应用中的隐患问题 1. 磁珠的高频等效特性 和磁环类似,低频段感性jwL为主,高频段阻性R为主。 2. 磁珠的参数分析与选型 不需要太在意磁珠在100MHz时的电阻值,选型…...
常见接口测试常见面试题(JMeter)
JMeter 是 Apache 提供的开源性能测试工具,主要用于对 Web 应用、REST API、数据库、FTP 等进行性能、负载和功能测试。它支持多种协议,如 HTTP、HTTPS、JDBC、SOAP、FTP 等。 在一个线程组中,JMeter 的执行顺序通常为:配置元件…...
2026届华为海思秋暑期IC实习秋招笔试真题(2025.04.23更新)
今天给大家分享下华为海思2025.04.23号最新IC笔试真题。 华为海思IC前端中后端(COT&XPU)岗位笔试机考题 更多华为海思数字IC岗秋招实习笔试真题,可以私信小编。 数字后端培训实战项目六大典型后端实现案例 秒杀数字后端实现中clock gating使能端setup viola…...
水域陆地两相宜,便携漏电探测仪
在自然灾害如洪水、地震、台风及火灾中,建筑物和电力设施易因结构破坏、线路老化或设备浸水导致绝缘失效,引发漏电事故。漏电不仅直接威胁人员生命安全,还可能引发二次火灾或爆炸,尤其在潮湿环境下导电性增强,触电风险…...
论文笔记(七十九)STOMP: Stochastic Trajectory Optimization for Motion Planning
STOMP: Stochastic Trajectory Optimization for Motion Planning 文章概括摘要一、引言二、相关工作三、STOMP 算法A. 探索B. 轨迹更新 四、机械臂的运动规划A. 设置B. 代价函数1)障碍物代价:2)约束代价:3)扭矩代价&a…...
如何应对客户提出的不合理需求
在项目执行过程中,客户经常会提出一些看似不合理的需求,这些需求可能超出了预算、时间范围,或与项目初期的目标不符。应对这些不合理需求的最佳方法是通过清晰沟通、设定合理期望、与客户共同探索解决方案来有效管理这些需求。例如࿰…...
SEO的关键词研究与优化 第一章
关键词研究和优化是SEO的核心。通过深入了解目标受众使用的搜索词,我们可以优化网站内容,提高搜索引擎排名,并吸引更多相关流量。本章将详细探讨关键词研究的方法、和最佳实践。 关键词类型对比分析 1. 关键词研究的基础 了解不同类型的关键…...
A2A Agent 框架结构化分析报告
A2A Agent 框架结构化分析报告 第一章 绪论 1.1 引言 在全球数字化转型的浪潮中,人工智能(Artificial Intelligence, AI)技术正以前所未有的速度改变着我们的生活和工作方式。然而,随着AI系统的广泛应用,单一AI系统…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(10): つもり 计划/打算
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(10): つもり 计划/打算 1、前言(1)情况说明(2)工程师的信仰 2、知识点(1)つもり 计划/打算(2&a…...