chromem-go:Go 语言 RAG 应用的高效轻量级向量数据库

作者:陈明勇

个人网站:https://chenmingyong.cn

文章持续更新,如果本文能让您有所收获,欢迎关注本号。

微信阅读可搜《程序员陈明勇》。

前言

在开发 RAGRetrieval-Augmented Generation)应用时,起初你可能更倾向于选择一款轻量级的向量数据库,而非复杂的大型数据库。例如,在关系型数据库的选择上,许多人会更愿意使用 SQLite 而不是 PostgreSQLMySQL,以减少额外的配置和维护成本。

Go 语言中,chromem-go 提供了一种简洁高效的解决方案——它是一款可嵌入到 Go 程序中的轻量级向量数据库,无需单独部署数据库服务,极大地降低了使用门槛。

本文将深入探讨 chromem-go 的使用方法,帮助你快速上手并应用到实际项目中。

准备好了吗?准备一杯你最喜欢的咖啡或茶,随着本文一探究竟吧。

程序员陈明勇.jpeg

chromem-go

介绍

chromem-go 是一个 Go 语言中可嵌入的向量数据库,提供类似 Chroma 的接口且无第三方依赖。支持内存存储,并可选持久化功能。

由于 chromem-go 是可嵌入的,因此你能够在 Go 应用中添加检索增强生成(Retrieval Augmented Generation, RAG)以及类似的基于嵌入(embeddings)的功能,而无需运行一个单独的数据库。这就像使用 SQLite 而不是 PostgreSQL/MySQL 等数据库一样。

这是一款独立的向量数据库,专为 Go 语言设计,并非用于连接 Chroma 的库,也不是 Chroma 的 Go 语言重新实现。

安装

Go 项目根目录下,执行以下命令:

go get github.com/philippgille/chromem-go

快速开始

package main

import (
	"context"
	"fmt"
	"runtime"

	"github.com/philippgille/chromem-go"
)

func main() {
   
   
	ctx := context.Background()

	db := chromem.NewDB()

	c, err := db.CreateCollection("knowledge-base", nil, nil)
	if err != nil {
   
   
		panic
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员陈_明勇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值