<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[xsgnzb的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/xsgnzb</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; xsgnzb]]></copyright><item><title><![CDATA[Spring MessageSource国际化原理]]></title><link>https://blog.csdn.net/xsgnzb/article/details/143027954</link><guid>https://blog.csdn.net/xsgnzb/article/details/143027954</guid><author>xsgnzb</author><pubDate>Thu, 17 Oct 2024 20:40:27 +0800</pubDate><description><![CDATA[查找code的过程。遍历basenames找到对应的资源文件// 没有变量的情况if (bundle!= null) {// 有变量的情况，使用MessageFormat对变量进行替换if (bundle!= null) {= null) {获得ResourceBundle= null) {try {// ...]]></description><category></category></item><item><title><![CDATA[【Prompt Enhancer】如何优化prompt的内容]]></title><link>https://blog.csdn.net/xsgnzb/article/details/142217954</link><guid>https://blog.csdn.net/xsgnzb/article/details/142217954</guid><author>xsgnzb</author><pubDate>Fri, 13 Sep 2024 19:01:56 +0800</pubDate><description><![CDATA[查询原则基准和Cozy的prompt会更注重格式。尤其是cozy，基本是按照固定格式输出。Github版本prompt更注重问题的深度，对提问场景帮助会更大。由于LLM输出的不稳定，基本每次生成都会有些差异，生成的内容也不一定能全部使用。但是，它们给出了很多维度和参考例子是值得我们借鉴，为我们提供一些编写prompt的思路。]]></description><category></category></item><item><title><![CDATA[主流的认证授权技术]]></title><link>https://blog.csdn.net/xsgnzb/article/details/142095906</link><guid>https://blog.csdn.net/xsgnzb/article/details/142095906</guid><author>xsgnzb</author><pubDate>Tue, 10 Sep 2024 12:58:11 +0800</pubDate><description><![CDATA[授权是系统对用户赋予权限的过程，对于平台系统会注重权限隔离，包括功能权限、数据权限等。为了尽量保证access_token的安全，access_token放在回调URL里的Fragment，避免后续客户的发起请求，把access_token给带出去了。服务器取出凭证 ID对应的Challenge，用公钥签名Challenge，将结果和浏览器返回的签名比较，一致表面验证通过，允许用户登录。这种模式是为了应对没有第三方应用的情况，对于前端应用，直接从授权服务器得到access_token，省略了授权码的环节。]]></description><category></category></item><item><title><![CDATA[通过LLM提升ASR的准确率]]></title><link>https://blog.csdn.net/xsgnzb/article/details/141967330</link><guid>https://blog.csdn.net/xsgnzb/article/details/141967330</guid><author>xsgnzb</author><pubDate>Fri, 06 Sep 2024 19:13:36 +0800</pubDate><description><![CDATA[现在ASR识别用户语言内容选择的是“中文”，会出现标点符号使用不合适，识别内容不符合语境等问题。现在考虑使用LLM对ASR识别出的内容做校正，输出更适合对话的语境的内容。符号校正，选择合适的中英文符号、合理的断句、符号符号文本表达的语气。"content": "我叫张老师，住在北京，你住在什么地方？"content": "我叫张老师，你叫什么名字""content": "你叫什么名字？"content": "你住在哪里？"content": "我住在杭州""content": "我叫张三"]]></description><category></category></item><item><title><![CDATA[LiveKit的agent介绍]]></title><link>https://blog.csdn.net/xsgnzb/article/details/141938915</link><guid>https://blog.csdn.net/xsgnzb/article/details/141938915</guid><author>xsgnzb</author><pubDate>Thu, 05 Sep 2024 19:25:59 +0800</pubDate><description><![CDATA[LiveKit核心概念：​订阅信息流​agent交互流程赋予用户创建房间的权限，在客户的加入并创建房间。客户的指定ws_url和token，加入指定房间。



离开房间

调用  通知 LiveKit 离开事件。如果应用程序在未通知 LiveKit 的情况下关闭，则将继续显示参与者在 Room 中 15 秒。Swift上，当应用程序退出时，会自动调用 。客户端通过 API 向房间中的任何参与者发布任意数据消息。房间数据通过 WebRTC 数据通道发布到SFU；LiveKit 服务器会将该数据转发给聊天室中]]></description><category></category></item><item><title><![CDATA[CompletableFuture.allOf().get()引起的线程池死锁]]></title><link>https://blog.csdn.net/xsgnzb/article/details/141365500</link><guid>https://blog.csdn.net/xsgnzb/article/details/141365500</guid><author>xsgnzb</author><pubDate>Tue, 20 Aug 2024 18:35:45 +0800</pubDate><description><![CDATA[可以同步等待一组异步请求都返回结果后，再往下执行。voidCompletableFuture.get()会同步等待所有结果返回，并且不会超时。就因为没有设置超时时间，造成了死锁的发生。处理逻辑是：异步执行父任务父任务里包含多个子任务为了异步执行任务，所以放到线程池THREAD_POOL里。然后，任务里包含多个子任务，为了降低执行时间，把子任务做成了并发执行，使用了CompletableFuture.allOf(completableFutures).get()方法。]]></description><category></category></item><item><title><![CDATA[快速体验微软TTS服务]]></title><link>https://blog.csdn.net/xsgnzb/article/details/141356238</link><guid>https://blog.csdn.net/xsgnzb/article/details/141356238</guid><author>xsgnzb</author><pubDate>Tue, 20 Aug 2024 13:40:33 +0800</pubDate><description><![CDATA[微软的语音合成服务（TTS）拥有500多种高品质的音色，并且在全球都有节点可以接入，在国内访问延迟可以控制在毫秒级。下面介绍在不需要编码的情况下，如何快速体验微软TTS的效果。]]></description><category></category></item><item><title><![CDATA[微软TTS延迟因素分析]]></title><link>https://blog.csdn.net/xsgnzb/article/details/141262832</link><guid>https://blog.csdn.net/xsgnzb/article/details/141262832</guid><author>xsgnzb</author><pubDate>Fri, 16 Aug 2024 16:25:43 +0800</pubDate><description><![CDATA[微软合成语音的过程中受多方面因素影响，具体每个因素有多大的影响，下面通过具体的测试，给出结论。]]></description><category></category></item><item><title><![CDATA[Redis 底层数据结构]]></title><link>https://blog.csdn.net/xsgnzb/article/details/140285427</link><guid>https://blog.csdn.net/xsgnzb/article/details/140285427</guid><author>xsgnzb</author><pubDate>Tue, 09 Jul 2024 09:00:39 +0800</pubDate><description><![CDATA[是列表和哈希表底层的实现之一，当只包含数字和短的字符串时，使用这个结构。由压缩列表和节点构成。压缩链表包含字节大小、尾指针偏移量、节点个数、节点列表、结束标识。编码类型包括int16、int32、int64，元素数组里的类型和编码类型相同。是有序集合的底层实现之一，由跳跃表和跳跃表节点组成。当新元素比元素数组里存放的类型比大时，会进行类型升级，重新分配空间和排序。跳跃表和平衡数的区别是，跳跃表查询复杂度平均跟平衡树一样是logn，最差是n²，但是它的实现很简单。上个节点的长度是动态的，分为1字节和5字节。]]></description><category></category></item><item><title><![CDATA[如何构建智能聊天系统]]></title><link>https://blog.csdn.net/xsgnzb/article/details/140149259</link><guid>https://blog.csdn.net/xsgnzb/article/details/140149259</guid><author>xsgnzb</author><pubDate>Wed, 03 Jul 2024 13:08:11 +0800</pubDate><description><![CDATA[聊天分为听、思考、读，简单的通过ASR、LLM、TTS三类模型的组合可以实现，最近openai推出支持多模态的GPT-4o模型，可以把三个模型真正融合成在一起。现在市面上的模型百花齐放，各有所长。要实现可落地的方案，需要结合业务，验证模型效果，同时也要考虑方案的可行性，有些模型在国内能用，有些在国内不能用。]]></description><category></category></item><item><title><![CDATA[大语言模型测评工具-ChatHub和ChatAll]]></title><link>https://blog.csdn.net/xsgnzb/article/details/140149209</link><guid>https://blog.csdn.net/xsgnzb/article/details/140149209</guid><author>xsgnzb</author><pubDate>Wed, 03 Jul 2024 13:02:07 +0800</pubDate><description><![CDATA[ChatHub和ChatAll都是all-in-one的方式，集成了很多大语言模型，让我们同时和多个模型对话。]]></description><category></category></item><item><title><![CDATA[Spring Gateway转发websocket原理]]></title><link>https://blog.csdn.net/xsgnzb/article/details/139890011</link><guid>https://blog.csdn.net/xsgnzb/article/details/139890011</guid><author>xsgnzb</author><pubDate>Sat, 22 Jun 2024 23:29:51 +0800</pubDate><description><![CDATA[Spring Cloud Gateway简称Spring Gateway，它可以转发请求到后端微服务。Spring Gateway除了转发HTTP请求，也支持websocket请求。我们看下它是怎么实现的吧。]]></description><category></category></item><item><title><![CDATA[主流Ai Agent平台分享]]></title><link>https://blog.csdn.net/xsgnzb/article/details/139849128</link><guid>https://blog.csdn.net/xsgnzb/article/details/139849128</guid><author>xsgnzb</author><pubDate>Fri, 21 Jun 2024 09:25:00 +0800</pubDate><description><![CDATA[CozeDifyAutoGptGptsLLM是大语音模类似大脑，能理解用户说的话，做一些回复。但是它无法执行具体的action。Ai Agent定义是智能体，它基于LLM这个大脑，去完成大脑发出的指令。所以，从形式上Agent像是一个工作流，能完成一连串的任务。Agent会组合LLM、规划（Planning）、记忆（Memory）、工具（Tool Use）来完成一个具体的任务。规划（Planning）不同Agent在形式上会有所区别，Coze和Dify是通过可视化的方式，由用户手工组合不同工具。AutoGP]]></description><category></category></item><item><title><![CDATA[WebScoket scope类型]]></title><link>https://blog.csdn.net/xsgnzb/article/details/139480993</link><guid>https://blog.csdn.net/xsgnzb/article/details/139480993</guid><author>xsgnzb</author><pubDate>Wed, 05 Jun 2024 20:02:38 +0800</pubDate><description><![CDATA[实例，并将该实例存储在WebSocket会话属性中。随后返回相同的实例，直到会话结束。WebSocket 作用域的 bean 调用了所有 Spring 生命周期方法，如前面的示例所示。这些通常是单例的，并且比任何个别的WebSocket会话的生命周期都长。每个 WebSocket 会话都有一个属性map。作用域中声明一个Spring管理的bean。你可以将WebSocket作用域的beans注入到控制器和注册在。与任何自定义作用域一样，Spring在第一次从控制器访问时初始化一个新的。]]></description><category></category></item><item><title><![CDATA[class结构之MethodParameters]]></title><link>https://blog.csdn.net/xsgnzb/article/details/139460040</link><guid>https://blog.csdn.net/xsgnzb/article/details/139460040</guid><author>xsgnzb</author><pubDate>Wed, 05 Jun 2024 09:33:40 +0800</pubDate><description><![CDATA[u1代表1个字节，u2代表2个字节，一次类推。attribute_name_index是指向常量池里CONSTANT_Utf8_info类型的索引值，对应值是MethodParametersattribute_lenght代表属性值占用的长度parameters_count代表参数parameters的个数parameter.name_index是指向常量池里CONSTANT_Utf8_info类型的索引值，也就是参数名。]]></description><category></category></item><item><title><![CDATA[Spring STOMP-STOMP客户端]]></title><link>https://blog.csdn.net/xsgnzb/article/details/139043279</link><guid>https://blog.csdn.net/xsgnzb/article/details/139043279</guid><author>xsgnzb</author><pubDate>Sun, 19 May 2024 15:16:27 +0800</pubDate><description><![CDATA[这在使用外部代理时可能会带来挑战，因为带有非代理destination 的消息代表活动，但实际并未转发到代理。进行性能测试以模拟同一台计算机上的数千个客户端时，请考虑关闭心跳，因为每个连接都会安排自己的心跳任务，并且对于在同一台计算机上运行的大量客户端而言，这并未进行优化。，并可以自定义心跳间隔（默认情况下，写入不活动为 10 秒，这会导致发送心跳；，确保即使只发送带有非代理destination 的消息，心跳也会被转发到代理。标头，服务器在处理完发送或订阅后，会响应RECEIPT帧。]]></description><category></category></item><item><title><![CDATA[STOMP协议1.2]]></title><link>https://blog.csdn.net/xsgnzb/article/details/139043252</link><guid>https://blog.csdn.net/xsgnzb/article/details/139043252</guid><author>xsgnzb</author><pubDate>Sun, 19 May 2024 15:15:30 +0800</pubDate><description><![CDATA[STOMP 是一个简单的可互操作协议，设计用于异步消息传递，通过中介服务器在客户端之间进行。它定义了客户端和服务器之间传递消息的基于文本的线路格式。STOMP 已经活跃使用多年，并且被许多消息代理和客户端库支持。本规范定义了 STOMP 1.2 协议，并且是 STOMP 1.1 的更新。请将反馈发送至邮件列表。]]></description><category></category></item><item><title><![CDATA[Spring STOMP-拦截器]]></title><link>https://blog.csdn.net/xsgnzb/article/details/138972630</link><guid>https://blog.csdn.net/xsgnzb/article/details/138972630</guid><author>xsgnzb</author><pubDate>Thu, 16 May 2024 19:24:41 +0800</pubDate><description><![CDATA[DISCONNECT消息可能来自客户端，也可能在WebSocket会话关闭时自动生成。在某些情况下，拦截器可能会对每个会话多次拦截此消息。组件应对多个断开事件保持幂等。为 STOMP 连接的生命周期提供通知，但并非针对每个客户端消息。来拦截处理链任何部分的任何消息。的子接口，并在处理消息的线程中提供回调。对于发送到通道的每条消息都会调用一次，但。在订阅来自通道的消息的每个。请注意，如前文所述的。]]></description><category></category></item><item><title><![CDATA[Spring STOMP-事件]]></title><link>https://blog.csdn.net/xsgnzb/article/details/138972613</link><guid>https://blog.csdn.net/xsgnzb/article/details/138972613</guid><author>xsgnzb</author><pubDate>Thu, 16 May 2024 19:24:11 +0800</pubDate><description><![CDATA[当你使用外部代理时，如果代理暂时不可用，STOMP“代理中继”会自动重连“系统”连接。然而，客户端连接不会自动重连。假设心跳已启用，客户端通常会在10秒内注意到代理没有响应。客户端需要实现自己的重连逻辑。事件被发布，可以通过实现Spring的。]]></description><category></category></item><item><title><![CDATA[Spring STOMP-消息的顺序]]></title><link>https://blog.csdn.net/xsgnzb/article/details/138923309</link><guid>https://blog.csdn.net/xsgnzb/article/details/138923309</guid><author>xsgnzb</author><pubDate>Wed, 15 May 2024 20:58:58 +0800</pubDate><description><![CDATA[支持，消息在不同的线程中被处理，客户端收到的结果的顺序可能与发布顺序不一样。，从而保证发布顺序。请注意，这会产生很小的性能开销，你应该在需要时才启用它。支持，消息在不同的线程中被处理，处理的顺序可能与它们被接收的确切顺序不匹配。，并从此处写入 WebSocket 会话。同样的原则也适用于客户端发送的消息，这些消息被发送到。设置该标志后，同一客户端会话中的消息逐一发布到。，然后根据它们的目的地前缀进行处理。要启用有序发布，可以如下设置。要启用有序发布，可以如下设置。来自代理的消息会发布到。]]></description><category></category></item></channel></rss>