- 博客(56)
- 资源 (1)
- 收藏
- 关注
原创 大模型开发框架LangChain GO
是 LangChain 的 Go 编程语言移植版本。是一个用于开发基于语言模型的应用程序框架。:将语言模型与其他数据源连接。:允许语言模型与其环境交互。LangChain 框架正是基于上述原则设计。
2025-03-26 15:41:03
709
原创 一文讲解GO中日志
通过零分配(Zero-allocation)设计、预编码日志级别、异步写入等优化。支持自定义编码器、钩子(Hooks)、集成第三方服务(如Sentry、ELK)。基准测试:~200k logs/s(JSON格式),可通过自定义。接口自定义输出格式(如JSON、Text、第三方平台)。需要极致性能(如高频日志的微服务、实时系统)。希望平衡性能与易用性,且Go版本≥1.21。、钩子扩展),但因停止维护,生态逐渐萎缩。: 无需维护第三方库,API设计相似。: 性能可能下降,需评估是否可接受。
2025-03-04 17:51:45
436
原创 数据库监控工具——PMM
是一款开源的数据库监控与管理平台,专注于等数据库的性能优化、故障排查和健康管理。由 Percona 公司开发,集成了数据采集、可视化、分析和告警功能,帮助运维团队高效管理数据库集群。PMM 采用部署在目标数据库服务器上,负责收集数据库性能指标(如查询延迟、连接数、锁状态等)。支持通过(如)收集系统和数据库指标。作为中心化服务,存储和分析从客户端收集的数据。: 时间序列数据库(TSDB),用于存储监控数据。: 提供可视化仪表盘,展示性能指标。
2025-03-04 17:47:27
964
原创 一个还不错的编程助手
豆包 MarsCode 编程助手支持的功能如下表所示。更详细的使用说明参考《AI 能力》一文。功能说明代码补全阅读并理解当前代码,然后提供后续代码片段,也支持通过注释生成代码片段。代码补全 Pro基于上一次的编辑内容及代码情况,预测下一个改动点并提供推荐代码。代码生成理解自然语言并生成所需代码。代码编辑编辑指定代码,包括重构、优化、修改部分逻辑等代码解释精准解释项目代码,快速上手开发。代码注释生成生成函数级注释或更详细的行间注释。单元测试生成为指定代码片段生成单元测试。
2025-02-26 09:53:45
844
原创 GO大模型应用开发框架
旨在提供基于 Golang 语言的终极大模型应用开发框架。它从开源社区中的诸多优秀 LLM 应用开发框架,如 LangChain 和 LlamaIndex 等获取灵感,同时借鉴前沿研究成果与实际应用,提供了一个强调简洁性、可扩展性、可靠性与有效性,且更符合 Go 语言编程惯例的 LLM 应用开发框架。
2025-02-20 14:50:19
497
原创 一个有用的技术项目
这是一个非营利性开源组织,致力于通过技术手段推动电子书和知识资源的自由共享与开放访问。(超过 300k stars),收集全球免费编程学习资源,包括书籍、教程、课程、博客等,涵盖 40+ 语言版本。内容分类清晰,覆盖编程语言、算法、工具(如 Git)、计算机科学理论等。:所有项目均遵循开源协议(如 CC、MIT),允许自由使用、修改和分发。提供绕过学术付费墙访问论文的工具与资源,推动学术开放获取。:依赖全球贡献者协作更新,鼓励用户提交优质资源或修正内容。:尤其关注非英语资源,减少技术教育中的语言壁垒。
2025-02-17 15:27:14
172
原创 雪花算法应用
雪花算法是由 Twitter 开源的分布式 ID 生成算法,用于生成 64 位的长整型唯一 ID。这个实现是线程安全的,并且适合在生产环境中使用。如果需要处理时钟回拨问题,可以根据具体需求添加相应的处理机制。- 10 位工作机器 ID:包含 5 位数据中心 ID 和 5 位机器 ID。4. 在实际生产环境中,建议结合多种方案,并加入监控和告警机制。3. 对于长时间回拨或高并发场景,使用号段预分配方案。- 如果对时间戳精度要求高,可以使用备份时钟方案。- 如果并发量大,考虑使用号段预分配方案。
2025-02-10 19:22:03
325
原创 遇到的一些GO问题
4.nil 切片 vs 空切片。1.goroutine 泄漏。8. 空接口 vs nil。2.channel 使用。12. defer 相关。13. JSON 处理。11. 循环变量捕获。
2025-02-10 14:39:52
336
原创 AI自动化框架-AIOpsLab
AIOpsLab 是一个全面的框架,旨在支持自主 AIOps 代理的设计、开发和评估。此外,它还用于构建可复现、标准化、互操作和可扩展的基准测试。AIOpsLab 可以部署微服务云环境、注入故障、生成工作负载并导出遥测数据,同时协调这些组件并提供与代理交互和评估的接口。此外,AIOpsLab 提供了一个内置的基准测试套件,其中包含一组问题,用于在交互环境中评估 AIOps 代理。该套件可以轻松扩展以满足用户的特定需求。
2025-02-05 13:05:20
496
原创 DDD 和 TDD
DDD 是一种软件开发方法,强调通过与领域专家的密切合作来构建一个反映业务逻辑的模型。实现一个登录功能,我们可以结合领域驱动设计(DDD)和测试驱动开发(TDD)的原则来设计和实现。以下是一个简单的示例,展示如何在 Go 项目中实现登录功能。其目标是通过测试来驱动设计和开发,确保代码的正确性和可维护性。2. 使用 TDD 驱动开发 :在实现领域模型的同时,编写测试来验证模型的正确性。1. 编写测试 :在实现功能之前,编写一个失败的测试。3. 值对象 :没有唯一标识的对象,通常是不可变的。
2025-01-26 14:15:01
707
原创 一款自适应的 AI 集成开发环境 (IDE)—Trae
比如开发一个小型 Web 应用,Trae 可自动创建项目基础架构,包括文件目录结构、初始化代码等,开发者只需通过聊天提出需求,就能快速完成项目搭建,节省大量时间和精力。分析代码库和工作流程,Trae 给出优化建议,提升代码质量和性能。开发企业级应用,涉及多模块、多技术栈,Trae 依据项目上下文,精准生成代码、进行定制化修改,帮助开发者保持清晰思路,高效推进项目。设计一款新软件界面,设计师提供手绘草图或竞品截图,Trae 依据图片明确界面布局、元素样式等需求,生成相关代码,加快从设计到开发的转化速度。
2025-01-23 10:58:02
965
原创 开源的数据库监控和管理工具—PMM
PMM(Percona Monitoring and Management)是一个开源的数据库监控和管理工具,主要用于监控 MySQL、MariaDB、MongoDB 和 PostgreSQL 等数据库的性能和健康状况。PMM Server 是 PMM 的核心组件,负责收集和存储来自 PMM Client(被监控的数据库实例)提供的数据。:PMM 提供丰富的数据库指标和查询分析功能,可以帮助定位数据库性能问题和查询效率低下的原因。• 集中管理:集中管理多个数据库实例,获取所有数据库实例的状态和性能数据。
2025-01-22 15:30:48
561
原创 Golang 生态学习
虽然 Go 在人工智能领域不如 Python 那样流行,但由于其出色的性能和并发支持,Go 也开始被用于一些 AI 和机器学习(ML)项目,尤其是对于需要高并发、高性能的任务,Go 可以提供优势。• 《Go语言圣经》(The Go Programming Language):这是学习 Go 语言的经典书籍,涵盖了 Go 的所有基础内容。它被广泛应用于供应链、金融等行业的区块链解决方案。:Go 的并发模型(goroutines 和 channels)是 Go 的强项,学习并发编程是使用 Go 的重要步骤。
2025-01-20 18:14:19
1105
原创 一文讲解Redis常见使用方式
•日志级别可调为debug、verbose、notice、warning。--save601:每60秒内如果有1次写操作就触发保存。•开发和测试环境,或者对高可用性要求不高的小型项目。•实现高可用Redis部署,自动完成主从切换。•适合大规模分布式场景,支持高并发和海量数据存储。•提高读性能(读写分离)和容灾能力的小型应用。按照主从模式启动主节点和从节点。使用相同配置启动其他哨兵节点。:开发测试环境,快速部署。:适合大规模高并发场景。:中小型高可用场景。
2025-01-20 14:30:06
701
原创 开源AI图像工具—Stable Diffusion
StableDiffusion在生成高质量图像方面表现出色,并且是开源的,可以自由使用和扩展。是一个广受欢迎的StableDiffusionWebUI,支持图形化操作,适合不熟悉代码的用户。是一种基于深度学习的生成式模型,用于图像生成、图像修复和风格转换等任务。•通过将图像嵌入到一个较小的潜在空间,降低了计算需求。•用户提供一段文本描述,模型生成与描述匹配的图像。•通过给定的输入图像,生成具有相似特征的新图像。•保持高质量图像生成的同时,显著提高了效率。
2025-01-19 10:28:32
1208
原创 一文讲解常见API开发工具
• Apifox 是一款集 API 文档、调试、Mock 和测试于一体的国产 API 工具,针对 API 开发的全生命周期进行优化。• Postman 是最知名的 API 测试工具之一,功能非常强大,覆盖了 API 开发、调试、测试、监控和文档生成等全生命周期。: 集成 Swagger/OpenAPI 风格的 API 文档和 Postman 式的调试功能。• Reqable 是一个现代化的 API 测试工具,主要专注于提供流畅的 API 调试体验。: 国内团队,需文档、调试、Mock、测试集成。
2025-01-13 15:11:46
1139
原创 Go Web 框架集合
Martini 是 Go 语言中较早的一个 Web 框架,具有非常简洁和优雅的 API,虽然它的性能没有 Gin 或 Echo 高,但在快速原型开发中仍然有一定的应用。:Iris 是一个高性能、轻量级且功能丰富的 Go Web 框架,旨在提供强大的功能和灵活性,适合开发 Web 应用和 RESTful API。:Chi 是一个非常轻量级且高效的 Go Web 框架,专注于 HTTP 路由,提供了强大的路由功能,适合中到大规模应用。提供更多的内建功能和扩展支持,适合需要全功能和灵活配置的 Web 应用。
2025-01-08 16:46:13
1186
1
原创 一款基于大语言模型和 RAG 的开源知识库问答系统
MaxKB = Max Knowledge Base,是一款基于大语言模型和 RAG 的开源知识库问答系统,广泛应用于智能客服、企业内部知识库、学术研究与教育等场景。
2025-01-03 15:45:52
465
原创 Go 语言中强大的配置管理库—Viper
是 Go 语言中强大的配置管理库,广泛用于云原生和微服务开发中。它支持多种配置文件格式(如 YAML、JSON、TOML 等)、环境变量、命令行参数以及远程配置管理。• YAML、JSON、TOML、HCL、Java properties 等。• 可以与 pflag 或 flag 集成,读取命令行标志。• 支持从 Consul、Etcd 等远程配置服务加载配置。• 为配置项设置默认值,在未定义时使用。• 可以监听文件变化,实时更新配置。• 支持从系统环境变量加载配置。• 支持嵌套结构的配置项。
2024-12-31 22:55:10
524
原创 Golang 的AI 框架库
类似于 TensorFlow 的 Go 深度学习框架,支持自动微分和计算图。: 知名的机器学习库,类似于 Python 的 scikit-learn。: TensorFlow 的 Go 绑定,适合加载和运行预训练模型。: 强大的数值计算库,适用于数学和科学计算。: 用于深度学习的简单库,支持前馈神经网络。: 简单易用的机器学习库,支持常见算法。: 用于强化学习的 Go 库。: 集成多种机器学习算法的库。• 监督学习和无监督学习。• 常见的机器学习算法。• 数据集加载和预处理。• 数据分析和预处理。
2024-12-31 18:23:38
627
1
原创 开发的人工智能助手-Claude
Anthropic 设计 Claude 时特别注重模型的安全性和对人类意图的理解,使其更“有益、诚实、无害”。• Anthropic 在 Claude 的开发中融入了“宪法式 AI”原则,指导模型遵循一套明确的道德规范。• Claude 的对话更注重保持语气温和,回应更加清晰。• Claude 被优化用于广泛场景:教育、商业、科研等。• 文本生成:撰写文章、总结文档、润色写作。• 特别设计以降低错误或产生误导信息的风险。• 尽量减少对敏感问题的误导或有害回答。• 能理解上下文,并进行连贯的对话。
2024-12-28 17:17:31
410
原创 Go 1.24即将到来!
go build 命令会根据版本控制系统的标签和提交信息,在编译后的二进制文件中设置主模块的版本信息。:类型别名可以像定义类型一样被参数化。通过 go run 生成的可执行文件,以及 go tool 新行为生成的可执行文件,现在会被缓存到 Go 构建缓存中。Go 模块现在可以通过 go.mod 文件中的 tool 指令管理可执行工具依赖项,无需再通过在 tools.go 文件中使用空导入的方式作为替代方案。如果 //go:build 中包含无效的 Go 主版本约束(如 go1.23.1),会报告诊断错误。
2024-12-20 13:46:29
656
原创 开源的工作流编排工具—Airflow
Airflow DAG 文件是一个 Python 脚本,通常存储在 Airflow 的 dags 文件夹中(默认路径:~/airflow/dags)。1. 将 DAG 文件保存到 Airflow 的 dags 目录(例如 ~/airflow/dags/example_dag.py)。• [task_1, task_2] >> task_3:task_1 和 task_2 都必须先完成。• task_1 >> task_2:task_1 必须先完成。: DAG 中的一个任务实例,由 Operator 定义。
2024-12-17 21:35:47
1111
原创 一种高效处理定时任务的方式
Go 语言中实现时间轮是一种高效处理定时任务的方式。: 如果任务延迟时间超过一个时间轮的周期,则任务进入下一层时间轮。对于长延迟任务(超出时间轮周期),可以将任务推送到更高级的时间轮。: 任务根据延迟时间计算槽的位置并放入对应槽中。:每个槽使用队列存储任务,提高插入和删除的性能。: 表示当前时间点,在时间轮中以固定步长移动。• 每级时间轮的槽数量乘以步长增加总周期。• 当任务溢出时,递归放入上级时间轮。以下是一个单层时间轮的简单实现。: 用于存储任务的时间槽。: 解决长延迟任务的问题。
2024-12-16 17:27:27
310
原创 基于LLMs和计算机视觉自动化浏览器工作流的工具-Skyvern
Skyvern 的设计灵感来源于由 BabyAGI 和 AutoGPT 推广的任务驱动型自主代理架构,但它加入了一个显著的增强功能:Skyvern 能够借助浏览器自动化库(如 Playwright)与网站交互。Skyvern 采用了一种创新的方法:它结合大语言模型(LLMs)和计算机视觉,通过实时解析视口中的元素,生成交互计划并执行操作,而不仅仅依赖代码定义的 XPath 交互。Skyvern 能够将视觉元素映射为完成工作流所需的操作,即使是从未接触过的网站,也无需编写任何定制化代码。
2024-12-12 10:00:00
501
原创 Map 那些事儿
Go 的 map 是一种哈希表,其核心思想是通过哈希函数将键映射到某个位置(桶)以存储对应的值。• 当 map 被访问(插入、查找或删除)时,Go 运行时会在后台逐步迁移旧桶中的数据到新桶。•桶(bucket):存储键值对的容器,map 中的元素被分散到多个桶中。•键值对存储:每个桶可以存储多个键值对,并通过链表或其他结构处理哈希冲突。• 溢出桶:当一个桶满时,会使用额外的溢出桶存储新插入的键值对。2. 分配到新桶:新哈希值根据新的桶数决定键值对的位置。• B: 桶的数量为 2^B,B 是桶数的对数。
2024-12-09 22:00:00
534
原创 defer那些事儿
在 defer 被声明时,fmt.Println(i) 的参数 i 的值会立即求值并保存下来,与循环结束后变量 i 的最终值无关。闭包捕获的是变量 i 的引用,而不是每次循环时的值。循环结束后,i 的值是 3,因此所有 defer 使用的都是这个最终值。确保 defer 的顺序符合需求,或者通过显式控制逻辑避免依赖 defer 顺序。defer 的调用被加入到一个栈中,按照后进先出(LIFO)的顺序执行。defer 参数的求值时机。
2024-12-09 21:00:00
405
原创 那些GO常见测试框架
是一个强大的 Mock 生成工具,帮助开发者生成接口的 Mock 实现,适用于单元测试。• 提供测试套件(Test Suite)支持,可以对复杂的测试用例进行分组。是 Go 中最流行的第三方测试库之一,提供断言、模拟和子测试等功能。Go 提供了内置的 testing 包,是所有测试的基础框架。是一个支持 Web UI 的测试框架,适合快速开发和调试。提供便捷的 Mock 支持,适合需要复杂接口模拟的场景。• 提供类似 BDD 的语法,便于描述复杂行为。是一个基于标准库的测试框架,提供分组测试功能。
2024-12-04 15:59:39
621
原创 Linux 系统中常用的命令
• chmod <模式> <文件>:更改文件权限,例如 chmod 755 file。• cp <源文件> <目标>:复制文件或目录(递归复制使用 cp -r)。• find <路径> -name <文件名>:按名称搜索文件。• head -n <行数> <文件名>:显示文件前 n 行。• tail -n <行数> <文件名>:显示文件后 n 行。• chown <用户>:<组> <文件>:更改文件所有者。• scp <源> <目标>:远程复制文件(基于 SSH)。
2024-12-03 14:27:48
291
原创 65K+!超级好用的API测试工具-Hoppscotch
在容器内运行命令:npm config set registry https://registry.npmmirror.com,配置一下镜像地址。运行命令:docker-compose run --entrypoint sh hoppscotch,这时候会进入容器内部。运行命令:docker-compose up -d,启动容器。运行命令:docker-compose down,关闭容器。:免费,社区活跃,可通过其 GitHub 仓库获取代码。在容器内运行命令:exit,退出容器。:支持更多协议的测试。
2024-12-03 10:08:38
564
原创 一个高度可扩展的 Golang ORM 库【GORM】
GORM 是一个功能强大的 Golang 对象关系映射(ORM)库,它提供了简洁的接口和全面的功能,帮助开发者更方便地操作数据库。• 单表继承(Single Table Inheritance)• 联表查询(Joins):通过 SQL JOIN 查询关联表。• 预加载(Preload):一次性加载关联数据。• 多态关联(Polymorphism)• Many To Many(多对多)• 保存点(Save Point)• Belongs To(从属)• Has Many(一对多)• Has One(一对一)
2024-11-25 17:38:37
810
原创 云原生时代的轻量级反向代理Traefik
Traefik 是一个用于路由和管理网络流量的反向代理,同时也是一个支持多种协议(HTTP、HTTPS、TCP、UDP)的负载均衡器。• Traefik 能自动检测支持的服务(如 Docker 容器、Kubernetes Pods)并动态生成路由配置,无需手动设置。• 支持 HTTP、HTTPS、TCP 和 UDP 协议,能够处理各种应用场景的流量需求。• 支持零停机动态更新配置,当后端服务变化时,Traefik 可自动调整路由。• 提供基于多种算法的负载均衡(如轮询、最少连接数等),确保流量高效分配。
2024-11-25 11:20:44
805
原创 一个很方便的个人博客库Hugo
Hugo 是一个强大的静态网站生成器,以其速度和灵活性而著称,适用于个人、企业和开发者等多种场景。:集成 Tailwind CSS 和 PostCSS,支持代码优化和 SRI 哈希。:支持 Markdown 和多种模板语言,轻松实现复杂页面布局。:支持 TypeScript 转译、代码压缩、打包等。:支持标签、类别和自定义分类法,方便组织内容。:支持裁剪、缩放、滤镜和 EXIF 数据提取。自行编辑my-first-post.md。:以 Go 编写,能快速生成复杂网站。:原生支持多语言切换和内容国际化。
2024-11-23 10:05:35
438
原创 etcd快速入门
ETCD(全称“etc daemon”)是一个分布式键值存储,常用于配置管理、服务发现和领导者选举,特别在云原生应用中使用广泛。它使用Raft一致性算法确保分布式系统的一致性。ETCD通过提供API存储、检索和监视键值对的变化,广泛应用于Kubernetes等容器化平台,具有高可靠性、可扩展性和容错性。
2024-11-21 23:37:53
310
原创 一个有特色的绘图工具excalidraw
Excalidraw 是一个协作白板工具,允许用户创建和分享手绘风格的图表和草图。它因其简单易用和开源的特性而受到广泛喜爱。Excalidraw 提供了一个直观的界面,模仿传统的手绘草图,使用户能够快速地记录想法、绘制流程图、线框图、思维导图等。:你可以将绘制的图形以不同格式(如 PNG 或 SVG)导出,便于在演示文稿、文档或其他应用中使用。:Excalidraw 允许用户创建看起来像是手绘的图形,为图表增添了非正式和创意的感觉。:界面简洁易懂,用户可以使用简单的工具绘制形状、箭头、文本和自由手绘图形。
2024-11-19 16:24:28
270
原创 Go 编译过程
• 在正常的 go build 流程开始前,如果项目中使用了自动插桩工具(如 opentelemetry-go-auto-instrumentation),会先对源代码进行预处理和注入代码。• go install:除了编译和链接源代码外,还会将生成的可执行文件放到 $GOPATH/bin 目录下,适用于长期安装和使用某些 Go 工具。在 Go 编译的最后阶段,所有的目标文件和库文件(包括 Go 标准库、第三方依赖库等)都会被链接成一个单独的可执行文件或共享库。这个阶段会对源代码中的类型进行验证。
2024-11-19 16:18:22
843
原创 GO中几种调用python方法
通过调用系统中的 Python 解释器来运行 Python 脚本或代码。通过 Go 的第三方库来调用 Python 代码,比如。
2024-11-17 19:21:06
842
原创 一个实用的现代命令行框架Cobra
cobra 的 serve 命令作为应用的一个子命令,将 gin 服务器的启动逻辑封装其中。这样就实现了一个灵活的、命令行控制的 Go 应用程序,适用于在命令行工具中集成 HTTP 服务的场景。将 cobra 和 gin 结合使用可以实现一个命令行应用,它既支持命令行功能(例如启动、配置、管理),也能同时运行一个基于 gin 的 HTTP 服务。cobra 提供了创建和管理子命令、标志、参数和帮助文档等一系列功能,使得 CLI 工具的开发更加快速、结构化和可维护。:自动生成用户友好的命令行帮助和文档。
2024-11-14 19:26:58
360
原创 一个简单有用的通知库Gotify
它支持通过简单的 REST API 接收通知,并允许用户通过 Web 界面或移动客户端查看这些通知。Gotify 的主要用途是帮助开发者和运维团队创建自定义通知系统,比如将监控告警或脚本输出结果推送到移动设备或浏览器中。目前不支持其他语言的插件编写,但可以使用webhook方式转发实现通知到微信、钉钉等第三方软件。:用 Go 语言编写,可以轻松部署到各种环境中,比如 Docker、Kubernetes 等。:Gotify 带有一个 Web 用户界面,方便用户直接在浏览器查看消息、管理应用和插件。
2024-11-11 21:35:33
689
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人