自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

罗小爬的技术宝书

一只没有脚的鸟...停不下的学习,持续的进步,点滴技术的记录与分享。

  • 博客(304)
  • 资源 (5)
  • 收藏
  • 关注

转载 【转载】maven profile 使用/教程/示例

本文用示例说明maven的profile的使用。mavan的profile作用Maven中的profile能让你为不同的环境定义不同的构建;Maven中的profile是一组可选的配置,可以用来设置或者覆盖配置默认值。一个Profiles下面允许出现的元素</</</</</</</</</</</</</</</</</</</maven的profile与SpringBoot的profile的区别SpringBoot的profile作用:运行的时候,把哪几个配置包含进来。

2025-03-11 15:32:37 62

原创 SpringAI系列 - ToolCalling篇(二) - 如何设置应用侧工具参数ToolContext(有坑)

在使用AI大模型的工具调用机制时,工具参数都是由大模型解析用户输入上下文获取的,由大模型提供参数给本地工具调用。传递额外的应用侧(客户端)参数给工具调用,如此应用侧在执行工具调用的过程中,便可获取到应用侧层传递的上下文参数,同时又可获取到AI大模型模型传递的工具参数。参数的,这个参数是Spring AI自身用来设置应用侧参数的,并不需要大模型提供。来解析工具参数,查看其源码发现目前并没有预留排除参数定义的方式。,如此在将工具描述上传给大模型时,大模型会认为工具同时需要。获取应用侧的上下文参数。

2025-02-19 15:15:23 566

原创 SpringAI系列 - Tool Calling篇(一)- @Tool集成、Function集成

如果您不提供描述,则将使用方法名称作为工具描述。强烈建议提供详细描述,因为这对于模型理解工具的目的和如何使用它是至关重要的。注解,并在提示选项中提供它(单个提示中可以定义和引用多个工具),以便模型可以使用。在大模型无法回答我们的问题时,会自动检测用户输入时提供的工具并调用相应的工具,Spring AI框架会自动处理会话中的工具调用,通过调用。模式会将大模型的响应拆分成多条记录,导致Spring AI无法正确提取到工具调用的上下文。同样以之前发送警报的工具调用为例,调整为使用Function集成的方式,

2025-02-18 08:38:33 563 1

原创 SpringAI系列 - RAG篇(四) - QuestionAnswerAdvisor

大语言模型是无法直接回答私有知识领域的问题,我们可以借助RAG技术和私有知识文档构建所谓的智能体应用,构建一个能回答私有领域问题的大模型问答应用。至此,RAG中2个阶段的所有工具均已介绍完毕,接下来我们便可以使用SpringAI集成大模型实现我们自己的AI知识库了。,该组件目前处于孵化中的状态,后续可能会改变,可自行进行学习和了解。Spring AI 为上述的 RAG 流程提供开箱即用的支持,即。即可以理解为跟用户输入类似的文档,即答案。可以理解为用户的输入,即用户的问题,而。也可以从简只使用2级层次。

2025-02-18 08:37:32 192

原创 SpringAI系列 - RAG篇(三) - ETL

主要负责知识的提取和管理。ETL 框架是检索增强生成(RAG)数据处理的核心,其将原始数据源转换为结构化向量并进行存储,确保数据以最佳格式供 AI 模型检索。具体组件的使用可点击相关链接进行查看。整个ETL管道操作的核心数据结构为。,该框架对应我们之前提到的。,如图片、音频和视频,

2025-02-18 08:36:38 273

原创 SpringAI系列 - RAG篇(二) - VectorStore

Apache Cassandra、Azure Cosmos DB、Azure Vector Search、Chroma、GemFire、Milvus、MongoDB Atlas、Neo4j、OpenSearch、PineCone、Qdrant、SAP Hana、Typesense和Weaviate,大家可根据需要。元数据即对应ETL阶段生成的Document中的metadata中的属性,在使用VectorStore相关操作时,可通过。当给定一个向量作为查询时,向量数据库返回与查询向量“相似”的向量。

2025-02-18 08:35:23 271

原创 SpringAI系列 - RAG篇(一) - Embedding Model

我们亦可以通过HTTP接口调用的方式对EmbeddingMode发起调用,我们将文本发送给EmbeddingModel,然后EmbeddingModel将向量化后的多维浮点数数组返回给我们。加载到向量数据库的过程中,最重要的转换之一是将原始文档拆分成较小的部分。考虑到模型的令牌限制,我们需要具备过滤相关数据的能力,并将过滤出的数据填充到在模型交互的上下文窗口中,这种方法俗称。这种将高维数据映射到低维空间的技术在机器学习中非常有用,因为它可以将复杂的数据表示为简单的向量,从而便于计算和分析。

2025-02-18 08:33:33 178

原创 Spring AI系列 - Chat Client & Chat Model

例如,在聊天机器人中,用户输入问题后,模型可以逐步生成和返回回答,而不是一次性返回完整答案。:流式响应允许模型在处理数据的同时逐步返回结果,而不是等待整个任务完成后再返回。相较于ChatModel,ChatClient提供了通用的流式的API,提高了开发者的编程体验,且支持同步和流式编程模型。:对于用户来说,流式响应可以显著改善体验,特别是在处理复杂查询或生成长文本时,用户可以逐步看到结果,而不必长时间等待。:通过逐步返回结果,流式响应可以减少内存和计算资源的占用,因为不需要一次性处理和存储所有数据。

2025-02-18 08:32:06 162

原创 【Copilot】Redis SCAN & SSCAN

本文内容由Copilot生成。

2025-02-13 09:43:24 803

原创 SpringAI系列 - 通过Ollama本地安装大模型

目前市面上提供了大量的Chat UI开源实现,比如Open WebUI、Cherry Studio、AnythingLLM等,启动后亦可停止ollama运行,配置完环境变量后再通过运行ollama app.exe重启ollama即可。应该至少有 8 GB 可用 RAM(内存)来运行 7B 型号,以下关于Ollama环境变量的详细说明由Copilot根据。16 GB 来运行 13B 型号,32 GB 来运行 33 B 型号。

2025-02-11 13:38:13 900

原创 SpringAI系列 - 使用LangGPT编写高质量的Prompt

文件夹下提供了更多例子,包括 Prompt 以及和 ChatGPT 的完整对话,帮助你更好的上手使用 LangGPT。你也可以借鉴结构化的思想在 LangGPT 提供的模板基础上自行添加、删除、修改得到自己的 Prompt。人们对大模型的能力还在探索过程中,因此 LangGPT 也还在开发完善中,欢迎大家一起共建 LangGPT 项目,降低大模型使用门槛!上面的诗人 Prompt 就是通过用 LangGPT 的 Role 模板设计的。上面的例子都是使用 Role 模板编写的,

2025-02-06 10:10:46 1425

原创 Spring AI系列 - 核心概念

例如,最近的一篇研究论文发现,最有效的Prompt之一可以以“深呼吸一下,分步进行此任务”开头。渲染后的字符串成为传递给AI模型的Prompt的内容。然而,即使对于机器学习专家来说,这是一个具有挑战性的过程,而且由于 GPT 等模型的大小,它极其耗费资源。从最初的简单字符串开始,Prompt逐渐演变为包含多条消息的格式,其中每条消息中的每个字符串代表模型的不同角色。这种复杂性导致了一个专门领域的出现,涉及创建 Prompt 以产生预期的输出,然后将生成的简单字符串转换为可用于应用程序集成的数据结构。

2025-01-13 08:46:48 1234

原创 常见的开源协议及注意事项【精简版】

了解并遵守开源许可证的规定,有助于合法合规地使用和分发开源软件。以下内容出自Github Copilot。

2025-01-08 16:21:15 360

转载 【转载】用于软件架构的 C4 模型

是一位专门从事软件架构的独立顾问,也是“Software Architecture for Developers”(面向开发人员的软件架构、技术领导力和敏捷性平衡的指南)的作者。他还是 C4 软件架构模型的创建者,这是一种创建代码映射的简单方法。没有预定义任何特定的符号,你在这些示例图中看到的是一个个简单的符号,适用于白板、纸张、便签、索引卡片和各种图表工具。软件架构图是一种非常好的表达方式,可以用它们来表达你将如何构建一个软件系统(预先设计)或者现有的软件系统是如何工作的(回顾文档、知识分享和学习)。

2025-01-08 14:03:47 98

原创 Docker部署Kafka

新版Kafka直接基于Kraft,无需再使用zookeeper。必须设置外部连接Kafka broker的地址,通过Docker进行部署,部署前需修改启动脚本中的。,服务器部署时设置为。服务器宿主机ip地址。

2025-01-03 13:12:50 284

原创 如何解决Git Clone时无法识别Https证书的问题

下载并安装缺失的根证书。你可以从证书颁发机构的网站下载根证书,然后将其添加到系统的证书存储中。这个问题通常是由于本地计算机无法验证远程服务器的SSL证书引起的。:你可以临时配置Git忽略SSL验证,但这不推荐用于生产环境,因为会降低安全性。:确保你使用的是最新版本的Git,因为较新的版本可能已经修复了这个问题。推荐使用第三种或第四种方法来解决这个问题,以确保连接的安全性。

2024-12-19 09:20:55 439

原创 不同查询构建器的使用方式(Mybatis、Mybatis-Plus、Mybatis-Flex、Spring Data JPA、QueryDsl)

针对同样的SQL查询需求,分别使用Mybatis、Mybatis-Plus、Mybatis-Flex、Spring Data JPA、QueryDsl等方式进行实现。

2024-11-25 17:16:34 816

原创 Redis Search系列 - 第七讲 Windows(CygWin)编译Friso

它提供了一个大型的 GNU 和 Open Source 工具集合,这些工具可以在 Windows 上运行,并且提供了类似于 Linux 的功能。完全基于模块化设计和实现,可以很方便的植入其他程序中, 例如:MySQL,PHP,并且提供了php5, php7, ocaml, lua的插件实现。3)进入src目录,删除原有的 Makefile, 更改 Makefile.cygwin 为 Makefile,注意删除Makefile中的。4)打开 cygwin 的终端,cd 到 src 目录,运行。

2024-11-20 18:39:45 937

原创 GraphQL系列 - 第2讲 Spring集成GraphQL

在目录下创建): Person): Personid: ID!age: Int。

2024-10-29 16:52:24 1348

原创 GraphQL系列 - 第1讲 GraphQL语法入门

GraphQL是一种用于 API 的查询语言以及一个用于执行查询的服务器端运行时。它由 Facebook 开发,并在 2015 年开源。GraphQL 的主要目的是提供一种更高效、灵活的数据查询方式,替代传统的 REST API。基本功能基本功能描述类型系统使用强类型系统定义 API 的数据结构。查询客户端可以通过查询请求精确地获取所需的数据,减少数据传输量。变更(Mutation)支持变更操作,用于创建、更新或删除数据。订阅(Subscription)

2024-10-28 13:59:26 1446

原创 DDD系列 - 番外篇1 记一些常用的架构设计原则

将多个组件链接成一个独立可执行文件(war、jar、ext),并以动态加载的插件形式来部署(组件化的插件式架构)。组件是软件的部署单元,是整个软件系统在部署过程中可以独立完成部署的最新小实体(jar、dll)。设计良好的组件都应该永远保持可被独立部署的特性,同时也意味着这些组件应该可以被单独开发。在这些情况下,“软件模块”指的就是一组紧密相关的函数和数据结构。大部分情况下,其最简单的定义就是指一个源代码文件,既然改变不可避免,那就将变化隔离在单独的组件,让变去依赖不变(不稳定依赖稳定),

2024-10-25 09:01:26 127

原创 Redis Search系列 - 第六讲 基准测试 - Redis Search VS. MongoDB VS. ElasticSearch

测试项MongoDB结果对比100%写吞吐量:69672/秒平均耗时:0.341毫秒吞吐量:7911/秒平均耗时:7.818毫秒吞吐量:37985/秒平均耗时:1.001毫秒Redis JSON比MongoDB快5.4倍比ElasticSearch在单独写方面快200倍99%的Redis请求在不到1.5ms的时间内完成100%读吞吐量:178364/秒平均耗时:0.172毫秒吞吐量:11281/秒平均耗时:5.578毫秒吞吐量:62933/秒平均耗时:0.768毫秒。

2024-10-22 13:36:28 1278

原创 Redis Search系列 - 第五讲 基准测试 - Redis Search VS. ElasticSearch

一个简单的维基百科用例我们发现RedisSearch在索引上快了58%,在索引数据集上执行双词搜索时快了4倍。一个更高级的多租户用例Redis Search在201秒内创建了50k个索引,而ElasticSearch在创建921个索引后崩溃了。组件RediSearch搜索引擎基于现代和优化数据结构的专用引擎基于Lucene引擎编程语言基于C,极度优化Java内存技术本地运行在DRAM和持久内存上基于磁盘并有缓存选项协议优化的RESP(REdis序列化协议)HTTP。

2024-10-22 13:35:26 1122

原创 Redis Search系列 - 第四讲 支持中文

如果你希望使用自定义词典,可以在加载Redis Search模块时在模块级别进行设置。FRISOINI设置可以指向包含相关设置和词典文件路径的 friso.ini 文件。请注意,没有默认的 friso.ini 文件位置。RediSearch 自带的 friso.ini 和词典文件在构建时已编译到模块二进制文件中。在该dict/UTF-8目录下新建自定义的字典,如下图新建,在该自定义文件中输入业务专属的词条及其同义词集合,# 格式:词条/同义词集合# 示例格式1(无同义词): 你好/null。

2024-10-18 13:42:20 1245

原创 Redis Search系列 - 第三讲 拼写检查

从v1.4开始,Redis Search可以为拼写错误的查询术语(term)生成替代的方案。为拼写错误的搜索词提供建议。例如,术语“reids”可能是“redis”的拼写错误版本。成为拼写建议,每个拼写建议根据其在索引中的出现次数给出一个标准化分数。是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括插入一个字符、删除一个字符和替换一个字符。关于Spellchecking中自定义字典相关的命令。关于Spellchecking的相关命令。备选项根据它们与拼错词之间的。

2024-10-18 13:38:39 621

原创 Redis Search系列 - 第二讲 同义词

后续在搜索时若term属于某个同义词组,则包含同义词组内的任何一个词的文档均能被检索到。在Redis Search中支持为某个index设置。关于同义词相关操作命令。

2024-10-18 13:37:30 430

原创 Redis Search系列 - 第一讲 创建索引

Redis Search 是 Redis 的一个模块,用于提供全文搜索和二级索引功能。:停用词是指在索引和搜索过程中被忽略的常见词,如 “the”、“is”、“and” 等。:术语是索引中的一个条目,表示一个唯一的词元。:索引是一个数据结构,用于快速查找包含特定词的文档。它通常是一个倒排索引(inverted index),其中存储了每个词及其在文档中的位置。:文档是索引中的基本单位。创建索引后,Redis Stack会自动索引存储在数据库中的任何现有的、修改的或新创建的JSON文档。

2024-10-18 13:34:56 2421

转载 【转载】RabbitMQ 死信机制真的可以作为延时任务这个场景的解决方案吗?

其实就平时可能遇见的场景而言,使用RabbitMQ 的死信机制就已经足够了。毕竟大部分延时任务都是固定时间的,比如下单后半小时未支付则关闭订单这种场景。只要场景是有着固定时间的延时任务的话,RabbitMQ无疑可以很好的承担起这个需求。RabbitMQ 死信机制能作为延时任务这个场景的解决方案但是,由于 RabbitMQ 消息死亡并非异步化,而是阻塞的。所以无法作为复杂延时场景 -需要每条消息的死亡相互独立这种场景下的解决方案。

2024-09-14 09:53:26 206

原创 MySql批量迁移数据库

的多个单独的SQL脚本,每个SQL脚本名称即为数据库名(如my_db.sql脚本的数据库名为my_db),且排除内置的mysql、sys、information_schema、performance_schema数据库,具体导出脚本。中,每个sql脚本名称即为数据库名(如my_db.sql脚本的数据库名为my_db),批量建库、导入SQL脚本的。将备份目录(SQL_DIR)下的多个sql脚本恢复到。中的所有数据库(表结构、数据)导出到。

2024-09-12 10:44:41 751

原创 记一次用户认证代码重构中设计模式及设计原则的使用

接入AuthServer框架,预留UniLoginUserDetailsService接口,负责用户登录认证逻辑,RBAC支持多种用户登录认证,如账号密码、LDAP用户,且后续支持扩展其他的登录认证方式如手机验证码等。且这些业务规则适用于所有的认证类型,为了避免在每个认证实现类中都添加上述逻辑,则使用了模板方法模式。

2024-08-09 10:26:58 787

原创 记一次mysql迁移Kingbase8

我本次的任务是将msyql数据库迁移到kingbase数据库中,即源数据库是mysql,目标数据库是kingbase。第一眼顶部菜单像Navicat,继续使用会发现里面像DBeaver。不需要本地数据库服务,则仅需要。按照日志提示,可通过。

2024-07-06 13:38:44 1902

原创 记一次mysql导出到达梦数据库

使用官方DM数据迁移工具。

2024-07-06 13:38:01 631

转载 【转载】Oracle的用户、Schema、数据库、表空间、数据文件的相互关系

今天彻底搞懂Oracle的用户、Schema、数据库、表空间、数据文件的相互关系Oracle数据库时数据的物理存储。这就包括(数据文件ORA或者DBF、控制文件、联机日志、参数文件)。其实Oracle数据库的概念和其它数据库不一样,这里的数据库是一个操作系统只有一个库。可以看做是oracle就只要一个大数据库。

2024-07-04 15:37:27 723

原创 【软考论文】扩展题目及大纲

软件质量保证(Software Quantity Assurance, SQA)指为【保证】软件系统或软件产品充分【满足用户要求的质量】,而进行的【有计划、有组织的活动】,这些活动贯穿于软件生产的各个阶段,即整个生命周期2类人软件开发人员技术工作:代码质量、技术评审、测试质量保证人员QA计划、监督、记录、分析及报告工作。

2024-06-28 08:50:47 202

原创 【软考论文】论信息系统的安全性与保密性设计

本人与2022年1月参与了某车厂的全渠道自动化精准营销系统,该系统以信息化技术为基础,将线上技术和线下平台相结合,打造新能源汽车新零售模式。我在项目中担任系统架构师角色,主要负责总体架构设计和公有云架构设计。本文以该精准营销平系统为例,讨论了信息系统安全性与保密性设计在该项目中的具体使用。在网络传输层通过使用基于Istio的零信任网络方案,来保证集群内外部的网络传输安全性。在数据层通过设置数据加密及数据备份机制,以保证数据机密性及灾后数据可恢复性。在应用层。

2024-06-28 08:47:11 267

原创 【软考论文】论基于架构的软件设计方法及应用(ABSD)

本人于2022年1月参与了某车厂的全渠道数字化精准营销平台项目,该系统为以数字化技术为基础,将线上平台、线下实体紧密结合,打造新能源新零售模式。在该项目组中我担任系统架构师的岗位,主要负责整体架构与公有云架构设计。本文以该精准营销平台为例,主要讨论了基于架构的软件开发在该项目中的具体应用。架构需求阶段,使用DDD来识别出构件、包、类等来描述系统结构,为系统的整体上层结构进行建模。架构复审阶段,使用ATAM对架构质量属性进行复审,以评估质量属性满足程度的问题。

2024-06-28 08:36:26 435

原创 【软考论文】论基于构件的软件开发(CBSD)

本人于2022年1月参与了某车厂的全渠道数字化精准营销平台项目,该系统为以数字化技术为基础,将线上平台、线下实体紧密结合,打造新能源新零售模式。在该项目组中我担任系统架构师的岗位,主要负责整体架构与公有云架构设计。本文以该精准营销平台为例,主要讨论了基于构件的软件开发在该项目中的具体应用。系统基于Spring Boot和K8S的微服务架构来进行构件化开发,在构件获取阶段通过使用构件库、集成第三方软件、对接现有系统或第三方服务来实现需求,在构件开发阶段使用了多种设计模式来保证构件的可重用性,在构件组装阶段。

2024-06-28 08:34:33 375

原创 【软考论文】论软件系统架构风格

本人于2022年1月参与了某车厂的全渠道数字化精准营销平台项目,该系统为以数字化技术为基础,将线上平台、线下实体紧密结合,打造新能源新零售模式。在该项目组中我担任系统架构师的岗位,主要负责整体架构与公有云架构设计。本文以该精准营销平台为例,主要讨论了软件架构风格选取在该项目中的具体应用。应用层整体采用了调用返回风格中的 分层架构,包括基于B/S的前后端分离架构、后端的MVC分层架构、前端的MVVM分层架构,使用分层风格明确了各层代码职责,降低了代码耦合度和开发难度。而后端各模块间的交互采用了。

2024-06-28 08:33:02 292

原创 【软考论文】项目背景及论文模版

本人于2022年1月参与了某车厂的全渠道数字化精准营销平台项目,该系统为以数字化技术为基础,将线上平台、线下实体紧密结合,打造新能源新零售模式。在该项目组中我担任系统架构师的岗位,主要负责整体架构与公有云架构设计。本文以该精准营销平台为例,主要讨论了。

2024-06-28 08:31:34 248

原创 Redis Stream & Redisson Stream

子命令式可选的,表示无需确认消息,NOACK子命令适用于对可靠性要求不高、偶尔的消息丢失是可以接受的情况,使用NOACK子命令可以避免将消息添加到PEL( Pending Entries List),相当于在读取消息后自动确认消息,后续无需再调用XACK命令进行确认,通过XPENDING查询出PEL消息(已投递未确认)后,若原先消息对应的consumer已经挂掉,没有能力继续处理消息,则可通过XCLIAM将对应的消息转移给同分组下的其他consumer进行处理,

2024-06-27 08:26:19 1704

pagenote.crx

pagenote - 一款chrome·网页标记插件, 在尝试了 (1)Scribe Toolbar(无法成功注册-google验证码限制), (2)Markup、LINER(免费版单网页标记数<=8个、颜色1-2种有限制), 最后发现了pagenote, (1)颜色有4种无限制, (2)单网页标记数可达50个 (3)可以无需登录离线使用

2021-12-03

kubekey-v1.2.0-linux-amd64.tar.gz

Kubesphere官方安装工具KubeKey v1.2.0版本, 个别企业环境无法访问github,可通过此链接下载

2021-11-30

Oracle VirtualBox User Manual - 6.1.28.pdf

VirtualBox 6.1.28用户手册 - 英文版

2021-11-22

headingsMap-3.10.1.zip

chrome浏览器插件

2021-11-08

android存储

本文介绍Android中的5种数据存储方式 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实 现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据  

2013-05-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除