kelindar/search
K
Kelindar/search
简介 :
kelindar/search 是一个Go语言库,它提供了嵌入式向量搜索和语义嵌入的功能,基于llama.cpp构建。这个库特别适合于小到中型项目,需要强大的语义搜索能力,同时保持简单高效的实现。它支持GGUF BERT模型,允许用户利用复杂的嵌入技术,而不需要深陷传统搜索系统的复杂性。该库还提供了GPU加速功能,能够在支持的硬件上快速进行计算。如果你的数据集少于100,000条目,这个库可以轻松集成到你的Go应用中,实现语义搜索功能。
需求人群 :
目标受众为需要在Go应用中集成语义搜索功能的开发者,尤其是那些处理小型到中型数据集,并且希望利用BERT模型和GPU加速来提高搜索效率的开发者。
总访问量: 474.6M
占比最多地区: US(19.34%)
本站浏览量 : 49.4K
使用场景
使用该库为文档或文章创建向量索引,实现快速检索。
在推荐系统中,利用用户行为生成的向量嵌入,进行相似项目推荐。
在自然语言处理应用中,使用BERT模型生成文本的语义嵌入,进行文本相似度分析。
产品特色
llama.cpp无cgo集成:不使用cgo,而是依赖purego,直接从Go代码调用共享C库,简化了集成、部署和交叉编译。
支持BERT模型:通过llama.cpp支持BERT模型,只要它们使用GGUF格式。
预编译二进制文件与Vulkan GPU支持:为Windows和Linux提供预编译的二进制文件,编译时包含Vulkan以实现GPU加速。
嵌入搜索索引:支持从计算出的嵌入创建搜索索引,可以保存到磁盘上,之后加载使用,适合小规模应用的基本向量搜索。
使用教程
1. 安装库:下载适用于Windows和Linux的预编译二进制文件,或者从源代码编译。
2. 加载模型:使用`search.NewVectorizer`函数初始化一个模型,使用GGUF文件。
3. 生成文本嵌入:使用`EmbedText`方法为给定的文本输入生成向量嵌入。
4. 创建索引并添加向量:使用`search.NewIndex`创建一个新的索引,并使用`Add`方法添加多个向量及其对应的标签。
5. 搜索索引:使用`Search`方法执行搜索,传入嵌入向量和要检索的结果数量。
6. 打印结果:遍历搜索结果,打印每个结果及其相关性分数。
AIbase
智启未来,您的人工智能解决方案智库
© 2025AIbase