0

0

使用 Go 构建安全的 RAG 应用程序:GoRag 简介

心靈之曲

心靈之曲

发布时间:2024-11-29 10:51:18

|

1434人浏览过

|

来源于dev.to

转载

使用 go 构建安全的 rag 应用程序:gorag 简介

在快速发展的人工智能开发领域,检索增强生成 (rag) 已成为利用上下文信息增强大型语言模型 (llm) 响应的关键技术。虽然 pythonai/ml 生态系统中占据主导地位,但对系统编程语言中强大的、生产级 rag 实现的需求日益增长。 gorag 是 stacklok 的一个新开源库,它为 go 生态系统带来了 rag 功能。

rag 开发中的 go 案例

go 在构建并发、可扩展系统方面的优势使其成为生产 rag 实现的绝佳选择。与基于 python 的解决方案通常需要复杂的部署策略和仔细的资源管理不同,go 的编译性质和内置并发原语提供了几个优势:

  • 卓越的内存管理和垃圾收集
  • 对高性能并发操作的原生支持
  • 通过单一二进制发行版简化部署
  • 强大的类型安全性和编译时错误检查

在构建需要处理高吞吐量并保持低延迟同时管理多个向量数据库连接和 llm 交互的 rag 系统时,这些特性特别有价值。

gorag:综合 rag 工具包

gorag 通过为 rag 开发提供统一的接口,解决了 go 生态系统中的一个重大缺陷。该库抽象化了使用不同 llm 后端和矢量数据库的复杂性,提供了遵循 go 习惯用法和最佳实践的干净 api。

核心架构

gorag 的核心是实现了模块化架构,将关注点分开:

  • llm互动(同时支持ollama和openai)
  • 嵌入生成
  • 矢量数据库操作(目前支持 postgresql 的 pgvector 和 qdrant)

这种分离允许开发人员交换组件而不影响其应用程序逻辑的其余部分。例如,您可以在本地使用 ollama 开始开发,然后无缝切换到 openai 进行生产。

为您的知识库生成嵌入

该库以其简单的 rag 实现方法而引人注目。这是一个典型的工作流程

针对本地 llm 或 openai 生成嵌入:

embedding, err := embeddingbackend.embed(ctx, documentcontent)
if err != nil {
    log.fatalf("error generating embedding: %v", err)
}

将嵌入存储在矢量数据库中(由 gorag 的抽象层自动处理)并查询相关文档:

灵枢SparkVertex
灵枢SparkVertex

零代码AI应用开发平台

下载
retrieveddocs, err := vectordb.queryrelevantdocuments(
    ctx,
    queryembedding,
    "ollama",
)

使用检索到的上下文来增强提示:

augmentedquery := db.combinequerywithcontext(query, retrieveddocs)

生产注意事项

在生产环境中部署 rag 应用程序时,有几个因素变得至关重要:

可扩展性

gorag 的设计允许矢量数据库操作的水平扩展。例如,带有 pgvector 实现的 postgresql 可以利用连接池和并行查询执行。

监控和可观察性

虽然该库目前处于早期阶段,但它的 go 实现使得使用标准 go 工具(如 prometheus/client_golang 或 opentelemetry)添加指标和跟踪变得简单。

成本管理

该库对多个 llm 后端的支持允许开发人员通过针对不同用例选择适当的提供商来优化成本。例如,使用 ollama 进行开发和测试,同时保留 openai 用于生产工作负载。
未来方向

gorag 项目正在积极开发,即将出现一些令人兴奋的可能性:

  • 支持其他矢量数据库,例如 weaviate 和 milvus
  • 与更多llm提供商集成
  • 增强的安全功能,包括输入验证和速率限制
  • 改进的可观察性和监控能力

入门

对于希望采用 gorag 的开发人员来说,初始设置非常简单:

import "github.com/stackloklabs/gorag"

该库遵循go的标准模块系统,可以轻松集成到现有项目中。示例目录提供了各种用例的全面演示,从基本的 llm 交互到完整的 rag 实现。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1998

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

681

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2418

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

49

2026.01.19

postgresql常用命令
postgresql常用命令

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、l、c、dt、d table_name、du、i file_name、e和q等。本专题为大家提供postgresql相关的文章、下载、课程内容,供大家免费下载体验。

164

2023.10.10

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1007

2023.11.02

postgresql常用命令有哪些
postgresql常用命令有哪些

postgresql常用命令psql、createdb、dropdb、createuser、dropuser、l、c、dt、d table_name、du、i file_name、e和q等。更详细的postgresql常用命令,大家可以访问下面的文章。

214

2023.11.16

postgresql常用命令介绍
postgresql常用命令介绍

postgresql常用命令有l、d、d5、di、ds、dv、df、dn、db、dg、dp、c、pset、show search_path、ALTER TABLE、INSERT INTO、UPDATE、DELETE FROM、SELECT等。想了解更多postgresql的相关内容,可以阅读本专题下面的文章。

281

2023.11.20

C++多线程并发控制与线程安全设计实践
C++多线程并发控制与线程安全设计实践

本专题围绕 C++ 在高性能系统开发中的并发控制技术展开,系统讲解多线程编程模型与线程安全设计方法。内容包括互斥锁、读写锁、条件变量、原子操作以及线程池实现机制,同时结合实际案例分析并发竞争、死锁避免与性能优化策略。通过实践讲解,帮助开发者掌握构建稳定高效并发系统的关键技术。

2

2026.03.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.5万人学习

Django 教程
Django 教程

共28课时 | 5万人学习

SciPy 教程
SciPy 教程

共10课时 | 2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号