RAG 系统开发 01:使用 rig 调用 ollama 的模型
这是个系列文章,将介绍基于 Rust 语言生态来开发一个 RAG 系统。本文是文章的第一篇,主要介绍如何使用 rig 来调用 ollama 模型。 项目准备设置 Rust 开发环境推荐使用 RsProxy 来设置 Rust 开发环境,步骤非常的简单: 设置 Rustup 镜像, 修改配置 ~/.zshrc 或 ~/.bashrc 12export RUSTUP_DIST_SERVER=&quo
这是个系列文章,将介绍基于 Rust 语言生态来开发一个 RAG 系统。本文是文章的第一篇,主要介绍如何使用 rig 来调用 ollama 模型。 项目准备设置 Rust 开发环境推荐使用 RsProxy 来设置 Rust 开发环境,步骤非常的简单: 设置 Rustup 镜像, 修改配置 ~/.zshrc 或 ~/.bashrc 12export RUSTUP_DIST_SERVER=&quo
本文是本地运行 deepseek-r1 的 LLM 安装指南。涵盖 Ollama 安装(分 macOS、Linux、Windows 系统)、模型下载与运行(命令行及 API 调用)、常用命令、注意事项,还介绍了 Chatbox 安装与使用,助力用户顺利部署。 下载并安装 ollama 使用 ollama 运行各种模型(LLM) 安装 chatbox 通过图形化界面使用模型 Ollama本地运行
总结过去,迈向未来 参考国家的 5 年计划,我也做一个 5 年总结。从 21 年算起,25 年应是收官之年,但我更愿意把它看作新一个 5 年计划的起始之年。 21 ~ 23 年头 3 年是很充实的,一直有很多事情可以做。 个人在技术的综合能力维度上,具备了从零到一搭建完整的技术团队(前/后端、测试、数据、运维),从一到十……的能力。带领了百人团队。 24 年今年有了很多学习的时间,主要的
这是 Rust 过程宏系列文章的第二篇,上一篇文章见:Rust 过程宏:实现 Builder(一) 。 05 Method Chaining回顾前面 04 Call build,我们通过单独的语句调用 build 方法来生成结构体。 1let command = builder.build().unwrap(); // 这里调用 build 生成 Command 对象 但有时候我们更想要在链式调
syn 、quote 和 proc-macro2 的作者提供了一个很好的 Rust 过程宏学习教程: Rust Latam:过程宏工作坊 。本文本基于 derive(Builder) 项目,补充了完整的学习过程和代码。 学习之前本系列文章会涵盖属性宏、派生宏和类似函数的过程宏。 请注意,系列文章的内容将假设你对 struct、enum、trait、impl trait、泛型参数 和 trait 边
刚读完《我们为什么需要睡觉?》一书,很有趣。在此摘抄附录:12 条健康睡眠小贴士。 坚持固定的睡眠时间。每天在同一时间上床睡觉,在同一时间醒来。 作为习惯性的生物,人类很难适应睡眠模式的变化。等到周末再补觉,并不能完全弥补一周内睡眠不足的情况,并且会导致周一早上很难醒来。可以为就寝时间设置闹钟。我们通常只会为起床时间设置闹钟,却不会为睡觉时间这么做。如果你只能从这 12 条建议中记住一条,那么记
目标设计一款可靠、易用、可扩展、轻量的通用分布式任务调度系统。暂且将此系统称为:fusion-scheduler,融合各类业务的调度系统之意。 可靠:采用分布式设计,避免任务丢失,支持对失败任务的自动或手动重试 易用:支持固定间隔、固定延迟、CRON 表达式、API 触发、工作流、MapReduce 等调度方式,满足各类业务需求 可扩展:支持动态添加、删除任务、动态修改任务配置,支持动态添加、删
前面章节已经简单介绍了 tonic-build 的使用,本节将深入 tonic-build,详细介绍在编译 .proto 文件时可提供的定制功能。 安装cargo使用 tonic-build 需要在 Cargo.toml 中配置以下依赖 123456[dependencies]tonic = "0.12"prost = "0.13"[build-depend
什么是 gRPC-WebgRPC-Web 是一个基于 gRPC 的跨平台 Web 客户端。使用 gRPC,可以在 .proto 文件中定义服务,并使用任何一种支持 gRPC 的编程语言编写客户端和服务端实现,而这些语言反过来又可以在从大型数据中心内的服务器到个人的平板电脑等各种环境中运行——不同语言和环境之间通信的所有复杂性都由 gRPC 来处理。还可以获得使用 protocol buffer 的
本文将介绍如何在 Next.js 应用中结合 Tonic 框架,实现 gRPC 和 gRPC-WEB 的无缝集成。我们将详细介绍如何在服务端组件和 API 路由中使用 gRPC 与后端微服务通信,以及如何在客户端组件中利用 gRPC-WEB 直接与后端服务交互。这种方法充分发挥了 Next.js 的服务端渲染能力和 gRPC 的高性能特性,同时保证了前后端的一致性和开发效率。 对于 gRPC 和
proto 3 是 proto 2 的简化版,当前两个版本均处于活跃状态。 常见问题proto 3 和 proto 2 是导线(wire)兼容的:这意味着若在 proto 2 和 proto 3 中构造具有相同的二进制表示,那么它们可以跨版本引用符号,并生成配合良好的代码。 区别存在性(optional) proto 2: 原生支持 optional。新应用中可以使用封装(wrapper)类型来表
或许,应该先定义下 高效能(我心中的): 健壮:程序缺陷和bug少,能够在编译时发现大多数错误。 高性能:API 服务应具备低延迟和高吞吐量的能力,以适应高并发场景。 低资源消耗:在相同吞吐量和响应速度下,占用的系统资源(CPU、内存)越低越好。 开发效率:开发效率应高于大部分语言/框架,以减少开发成本和提升业务快速响应效率。这里强调一点,我认为的开发效率聚集的真实开发的效率,不包括学
技术先给出结论,后面有机会建立新团队或启动新项目时,我会优先考虑如下技术选型(这里列出对于大部分系统开发需要的主要技术): 后端:Python + Rust WEB:Vue(TS) RPC:gRPC 数据库:PostgreSQL APP:平台原生技术,Kotlin(Android)、Swfit(iOS)、ArkTS/Cangjie(Harmony) 综合考虑了正确性、健壮性、开发效率
本文讨论 CDC 技术在微服务开发中的应用。在使用微服务以后,除了微服务带来的优势,随之而来的也有以前使用单体应用时不曾遇到的问题,比如:分库以后的多表联查、数据一致性等问题。本文将讨论以下两大问题应用 CDC 技术的解决方案: 分库后的多表联查 CQRS(读写分离) 实时数仓 数据一致性 采用事件消息表实现事件驱动性设计 基于最终一致性的分布式事物 有关 CDC 的更详细介绍可以参考
在当今数据驱动的时代,数据的实时性、完整性和一致性成为了企业业务成功的关键因素。随着微服务单服单库(每个微服务都有自己单独的数据库)的应用,以及数据量的爆炸性增长和业务的快速迭代,传统的数据处理和同步方式已难以满足现代企业的需求。Apache Pulsar,作为一个云原生的分布式消息和流处理平台,凭借其卓越的吞吐量和低延迟特性,正在逐渐成为大数据和流处理领域的明星。而Pulsar CDC技术的引入
在使用 gitlab 做 CI/CD 时,需要将构建好的制品推送到云存储中(比如 华为云 OBS、阿里云 OSS、AWS S3 等),然后在部署的时候再直接从云存储中下载。为方便使用,就使用 clap 和 opendal 开发了一个简单的云存储命令行工具,此示例支持 OBS 和 OSS,需要添加其它云存储支持也非常方便,具体可以参考 https://docs.rs/opendal/lat
问题相同的代码逻辑,在不同的环境得出了不同的结果。在业务系统里是正确的,但是数据系统里却计算出了不同的结果。给一个示例: 12345Integer x = 1234567;Long y = 1234567L;if (x.equals(y))) { // 处理业务逻辑} 我们预期if语句判断能够成功并进入进行处理业务逻辑,但实际上这里会始终返回 false。这是因为jav
问题监控发现 PostgreSQL 的 pg_wal 日志文件一直在持续增长,设置的 max_wal_size = 2GB 参数值未起作用。 12-bash-4.2$ du -sh $PGDATA/pg_wal61G /data/pgsql/12/data/pg_wal 12345postgres=# select pg_walfile_name('0/14CB2278
本篇是微服务系统的第一篇,我将基于自身的经验和在公司项目中的实践来记录我们施行微服务的过程和方式。