SuperBI Multi agents设计
介绍SuperBI是我根据鱼皮的bi项目改编而来,基础业务逻辑没有变动,对于消息队列以及大模型应用方向上增添了我最近学习到的内容,设计上可能不够完美,之后会逐渐改进。 github连接 原项目的缺陷原项目的系统设计大致如下: 就功能实现而言,系统设计上没有问题,重点关注在gpt接口吞吐量不大,因此这里使用了消息对立做削峰填谷、做背压,防止过多的流量进入gpt。 但是,这样的设计主要有几个缺陷: 采用线程池的方式消费清洗以及压缩任务,可能会出线任务丢失的情况,及线程池没有持久化的机制,虽然可以通过任务状态,定时获取未完成的任务进行重新消费,但是这样就需要额外的维护,提高系统复杂度了 同时这两个任务通过单机部署,就会出现耦合性以及扩展性的问题(具体情况具体分析,我这里按照未来需要扩展以及大流量的场景分析了) GPT消费的服务过于简单,会有各种问题,常见的有大模型幻觉、提示词注入等,对最终结果的生成质量有一定影响 额外的,一些新的大模型框架可以用上,比如Langchain等等 新设计我主要对几个模块进行了拓展: 拆分任务:数据上传、数据清洗+数据压缩、ai生成...
kafka学习(二)
Kafka架构学习上文回顾 生产者(Producer)通过发送数据到Kafka集群 Kafka集群包含多个Broker(节点),每个Broker中有多个Topic分区: Topic-A Topic-B Topic-C 每个Topic的分区都有一个Leader和多个Follower,用于数据复制和故障转移 消费者组(Consumer...
kafka学习(一)
kafka学习 Kafka 是什么?适合什么场景?核心术语(Producer、Consumer、Broker、Topic、Partition) What is kafkahttps://www.youtube.com/watch?v=vHbvbwSEYGo&t=1s kafka是事件驱动的消息传递系统,旨在处理实时的数据流,支持小服务之间的高效通信。对比与数据库存储状态*(State)*,kafka更倾向于存储事件*(Event)*,或者说作为日志存储,它通过主题*(Topics)*来组织和存储这些事件,同时kafka还具有持久化存储这些主题的功能,保证数据的可靠性和可用性。 用户更新信息、货物卸载或者设备报告都可以看作是一个事件,这些事件在kafka中以主题的方式进行存储,每个微服务都可以通过kafka进行高效的通信,将处理之后的消息送到其他主题。同时它提供了实时分析数据的可能性,不再是传统的批处理数据的方式。 Apache Kafka What is event...
雪花算法的使用
...
LangChain:初始LangChain
LangChain:初识LangChain整个学习过程都使用pyhon 3.10,由conda管理python环境 具体学习写到的代码在Github仓库 什么是LangchainLangChain是一个将大语言模型(LLM)应用到应用程序的开发框架。它提供了一套工具、组建、接口,简化使用LLM的过程。LangChain顾名思义,它可以将多个组建像链条一样链接起来使用, 官网学习–>LangChain官网<– LangSmith Productionization: Use LangSmith to inspect, monitor and evaluate your applications, so that you can continuously optimize and deploy with confidence. 用于检查、监控和评估应用程序,便于优化与部署 LangGraph Development: Build your applications using LangChain’s open-source components and...
Http与Https
Http与Https:你应该了解的区别与优势在日常的网络应用中,我们经常会遇到 HTTP 和 HTTPS 这两个协议。虽然它们看起来差不多,但在技术实现和安全性上却有着显著的区别。作为一名后端工程师,我将带你深入了解这两者的关键区别、优缺点,以及 HTTPS 的加密策略。 什么是 HTTP 和 HTTPS?HTTP(超文本传输协议)是用于从 Web 服务器传输网页内容的协议。HTTP 是无状态的,意味着每次客户端请求都会被服务器视为一次全新的请求,不会保留上次请求的任何信息。HTTP 是基于 TCP/IP 协议族的应用层协议,通常运行在 80 端口。 HTTPS(超文本传输安全协议)是 HTTP 的安全版本。与 HTTP 不同,HTTPS 在传输数据时使用了 SSL/TLS 协议来加密通信数据,确保数据在传输过程中不会被窃取或篡改。HTTPS 默认使用 443 端口。 TCP/IP协议知识背景HTTP 和 HTTPS 都依赖于底层的 TCP/IP 协议来建立可靠的网络连接。TCP(传输控制协议)负责将数据切分为包,并确保数据包的顺序正确、无误差地到达目标设备。而...
Webhook介绍
Webhook在阅读powerJob的官方文档的时候发现他用到了Webhook技术。想到自己部署的memos也有webhooks的功能,于是便深入了解了一下 介绍webhook顾名思义是一种“钩子”,它是一种API的概念,有点列斯反向的API,也就是前端不需要主动地想后端发送请求,后端主动向客户端发送推送推流数据。举个简单的例子,当你向微信朋友圈发布一条说说的时候,就会触发webhook,给你的微信好友的朋友圈推送的你的说说。 用书面话来讲webhook是一个事件驱动的自动化web应用用心工具。 与API的比较 特性 Webhook API 方式 事件驱动(推送) 请求驱动(拉取) 效率 更高效,因为只有在需要时才发送数据 由于轮询,效率较低 复杂性 配置较简单 配置更复杂 实时更新 数据会立即发送 数据会在请求时发送 数据控制 控制有限 可以完全控制数据 原理Webhook主要有两个核心的概念: 事件驱动:Webhook 是由特定事件触发的,例如支付成功、代码提交、新用户注册等。 HTTP 回调:当事件发生时,源应用程序会向预先配置的...
分布式事务(一)
分布式事务介绍最近遇到了一个业务场景,需要做一个工具,将两个业务写数据库合并到一个读数据库。在读写过程中需要做跨库的事务操作,也就是分布式事务。简单来说,就是要同时往两个数据库写数据,要求这个写操作要作为一个事务。 于是学习了一些分布式事务的知识,做一下汇总。 分布式事务解决方案主要有以下几种的解决方案: XA事务/两阶段提交(2PC) 三阶段提交(3PC) 补偿事务(TCC) 本地消息表 消息事务 最大努力通知 Sagas事务模型 XA事务/两阶段提交是MySQL分布式事务的实现方式。它主要有三个组件组成: **事务管理器(Transaction Manager, TM)**:负责协调分布式事务 **资源管理器(Resource Manager, RM)**:负责管理本地资源(如 MySQL 数据库)。 XA 事务 ID(XID):唯一标识一个分布式事务。 适用于简单的,事务量较小的系统 实现在 MySQL 中,XA 事务通过以下 SQL 语句实现: XA START:开始一个 XA 事务。 XA END:结束一个 XA 事务。 XA...
linux命令笔记
介绍这篇文章记录了使用 linux 时常用的命令 内容 更新素有包列表,并将已安装的包升级到最新的版本 1sudo apt update && sudo apt upgrade -y 多线程下载工具 axel 1sudo apt install axel 替代apt-get的apt-fast 将 PPA 添加到资源列表 1sudo add-apt-repository ppa:apt-fast/stable 安装 apt-fast 1sudo apt -y install apt-fast 安装配置: 选择替换apt-get 其他默认 打开配置文件 1sudo nano /etc/apt-fast.conf 删除第一个镜像数组的注释 结尾这是目前抄录的,以后会继续添加 😋
rust 学习(三)
Slice 类型Rust官网中文https://kaisery.github.io/trpl-zh-cn/ch04-03-slics.html 介绍slice允许你引用集合中一段连续的元素序列,注意它是一种引用,它没有用所有权。 现在我们用一个题目示例来展示它的功能。如题:我们要输入一个字符串,找到第一个空格,并输出它的位置,即第一个单词的位置结尾假设,我们不适用slice直接来解决这个问题 123456789101112// 由于不需要所有权因此用s的引用fn first_word(s: &String) -> usize { // 将字符串转为byte集合 let bytes = s.as_bytes(); for (i, &item) in bytes.iter().enumerate() { if item == b' ' { return i; } } ...