作者:陈明勇
个人网站:https://chenmingyong.cn
文章持续更新,如果本文能让您有所收获,欢迎关注本号。
微信阅读可搜《程序员陈明勇》。
前言
在开发 RAG(Retrieval-Augmented Generation)应用时,起初你可能更倾向于选择一款轻量级的向量数据库,而非复杂的大型数据库。例如,在关系型数据库的选择上,许多人会更愿意使用 SQLite 而不是 PostgreSQL 或 MySQL,以减少额外的配置和维护成本。
在 Go 语言中,chromem-go 提供了一种简洁高效的解决方案——它是一款可嵌入到 Go 程序中的轻量级向量数据库,无需单独部署数据库服务,极大地降低了使用门槛。
本文将深入探讨 chromem-go 的使用方法,帮助你快速上手并应用到实际项目中。
准备好了吗?准备一杯你最喜欢的咖啡或茶,随着本文一探究竟吧。

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

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



