AI新工具
banner

korvus


介绍:

Korvus是一个基于Postgres的高性能搜索SDK,简化了RAG管道操作。









korvus

Korvus是一个一体化的开源检索增强生成(RAG)SDK,专为Postgres数据库设计。Korvus通过整合LLM(大语言模型),向量存储,嵌入生成,重新排序,总结以及自定义模型,实现了整个RAG流程在单一数据库查询中的统一操作,提供高性能、可定制的搜索功能,并大大简化了架构复杂性。

使用场景
  1. 检索增强生成(RAG)操作:通过在单一SQL查询中完成数据检索、语义搜索、文本生成等复杂操作,减少系统延迟,提升性能。
  2. 多语言支持:Korvus提供针对Python、JavaScript、Rust等多种编程语言的SDK绑定,方便开发者在现有技术栈中无缝集成。
  3. 高性能搜索解决方案:通过删除外部API调用和数据移动,Korvus直接在数据库中执行复杂操作,提供快速可靠的处理能力。
  4. Postgres原生操作:利用Postgres内建的性能和可扩展性,Korvus能够有效处理大规模数据。
主要功能
  • 简化架构:以单一查询替代复杂的面向服务的架构。
  • 高性能:减少API调用和数据移动,提高处理速度和可靠性。
  • 开源软件:改进开发者体验,可以使用本地Docker运行的开源软件和模型。
  • 多语言支持:支持Python、JavaScript和Rust,开发者可提需求支持更多语言。
  • 统一管道:在一个查询中组合嵌入生成、向量搜索、重新排序和文本生成。
  • Postgres驱动:内部操作通过高效的SQL查询在Postgres数据库平台上驱动。
快速开始
  1. 安装Korvus:
pip install korvus
  1. 设置数据库连接环境变量:
export KORVUS_DATABASE_URL="{你的数据库连接字符串}"
  1. 初始化Collection和Pipeline:
from korvus import Collection, Pipeline
import asyncio

collection = Collection("korvus-demo-v0")
pipeline = Pipeline(
    "v1",
    {
        "text": {
            "splitter": {"model": "recursive_character"},
            "semantic_search": {"model": "Alibaba-NLP/gte-base-en-v1.5"},
        }
    },
)

async def add_pipeline():
    await collection.add_pipeline(pipeline)

asyncio.run(add_pipeline())
  1. 插入文档:
async def upsert_documents():
    documents = [
        {"id": "1", "text": "Korvus is incredibly fast and easy to use."},
        {"id": "2", "text": "Tomatoes are incredible on burgers."},
    ]
    await collection.upsert_documents(documents)

asyncio.run(upsert_documents())
  1. 执行RAG操作:
async def rag():
    query = "Is Korvus fast?"
    print(f"Querying for response to: {query}")
    results = await collection.rag(
        {
            "CONTEXT": {
                "vector_search": {
                    "query": {
                        "fields": {"text": {"query": query}},
                    },
                    "document": {"keys": ["id"]},
                    "limit": 1,
                },
                "aggregate": {"join": "\n"},
            },
            "chat": {
                "model": "meta-llama/Meta-Llama-3-8B-Instruct",
                "messages": [
                    {
                        "role": "system",
                        "content": "You are a friendly and helpful chatbot",
                    },
                    {
                        "role": "user",
                        "content": f"Given the context\n:{{CONTEXT}}\nAnswer the question: {query}",
                    },
                ],
                "max_tokens": 100,
            },
        },
        pipeline,
    )
    print(results)

asyncio.run(rag())
社区和文档

Korvus通过将整个RAG管道压缩到Postgres内部,为开发者提供了一种高效且简化复杂操作的解决方案。希望通过这一工具,开发者能更轻松地实现大规模数据的高效处理和复杂搜索功能。

可关注我们的公众号:每天AI新工具

广告:私人定制视频文本提取,字幕翻译制作等,欢迎联系QQ:1752338621