Korvus:统一RAG流程的搜索SDK
Korvus是一个创新的搜索SDK,它将整个RAG(检索增强生成)流程统一到单一的数据库查询中。作为一个建立在Postgres基础上的工具,Korvus为Python、JavaScript和Rust提供了绑定,使其能够以最小的基础设施需求,提供高性能、可定制的搜索功能。
核心概念
Korvus的核心理念是"一个查询统治所有"。它将LLM(大型语言模型)、向量内存、嵌入生成、重新排序、摘要生成和自定义模型等功能整合到一个单一的查询中,从而最大化性能并简化搜索架构。
主要特性
Korvus具有以下几个关键特性:
- 简化架构:用单一强大的查询替代复杂的面向服务的架构。
- 高性能:通过消除API调用和数据移动,实现更快的处理速度和更高的可靠性。
- 开源:使用开源软件和可在本地Docker环境中运行的模型,改善开发者体验。
- 多语言支持:支持Python、JavaScript和Rust,并开放其他语言支持的投票。
- 统一管道:在一个查询中结合嵌入生成、向量搜索、重新排序和文本生成。
- Postgres驱动:底层操作由高效的SQL查询在经过时间考验的数据库平台上执行。
系统架构
Korvus利用PostgresML的pgml扩展和pgvector扩展,将整个RAG流程压缩到Postgres内部。这种架构设计使得Korvus能够充分利用Postgres的强大功能,直接在数据库内执行复杂的RAG操作,从而消除了对外部服务和API调用的需求,显著降低了延迟和复杂性。
使用优势
选择Korvus的理由包括:
- Postgres原生RAG:利用Postgres的强大功能,直接在数据库内执行复杂的RAG操作。
- 单一查询效率:整个RAG流程在一个SQL查询中执行,简化架构并提高性能。
- 可扩展性和性能:继承Postgres的优秀扩展性和性能特性,即使在大型数据集上也能保持高性能。
快速入门
使用Korvus非常简单。用户首先需要安装Korvus,设置数据库连接,然后就可以初始化集合和管道,插入文档,并执行RAG操作。整个过程都可以通过简洁的Python代码完成。
SQL的力量
尽管Korvus提供了多种编程语言的高级接口,但其核心操作建立在优化的SQL查询之上。这种方法提供了透明性、可定制性和性能优势。高级用户可以检查和理解底层查询,甚至可以通过修改或添加SQL操作来扩展Korvus的功能。
社区和贡献
Korvus拥有活跃的社区,欢迎用户加入Discord和Twitter平台进行交流。同时,项目也欢迎贡献,鼓励开发者阅读贡献指南并提交拉取请求。
总的来说,Korvus作为一个强大的搜索SDK,通过统一RAG流程和利用Postgres的优势,为开发者提供了一个高效、灵活的搜索解决方案。
</SOURCE_TEXT>