项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1474
技术标签
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Python 环境(可通过 pip 安装包)
- 一个可用的 Postgres 数据库连接串(Korvus 基于 Postgres 运行)
- pip 包管理工具
- 能访问嵌入模型与 LLM 服务的网络环境
安装与启动步骤
-
1安装 Korvus SDK
使用 pip 从 PyPI 安装 korvus,同时获得 Python 绑定。建议在虚拟环境中执行。
pip install korvus -
2配置数据库连接
把 KORVUS_DATABASE_URL 设为你的 Postgres 连接串,README 要求用该环境变量传入。
export KORVUS_DATABASE_URL="postgres://user:password@host:5432/dbname" -
3初始化集合与流水线
创建 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()) -
4写入文档
用 upsert_documents 批量插入带 id 与 text 的文档,SDK 会自动完成切分与向量化。
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()) -
5执行 RAG 查询
调用 collection.rag(),一次查询内完成向量检索与 LLM 生成,返回最终回答。
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_DATABASE_URL | 是 | Postgres 数据库连接串,Korvus 所有数据与查询都走它 | postgres://user:password@host:5432/dbname |
text.splitter.model | 否 | 文档切分模型,示例使用 recursive_character | recursive_character |
text.semantic_search.model | 否 | 语义检索使用的嵌入模型名称 | Alibaba-NLP/gte-base-en-v1.5 |
chat.model | 否 | 生成回答所用的 LLM 模型 | meta-llama/Meta-Llama-3-8B-Instruct |
chat.max_tokens | 否 | 生成回答的最大 token 数 | 100 |
如何确认成功
运行最后一段 RAG 脚本,终端能打印出查询与 results(模型基于检索上下文生成的回答),即表示流程跑通。
常见问题
Q:没有 Postgres 数据库能用吗?
A:不能。Korvus 构建在 Postgres 之上,必须提供 KORVUS_DATABASE_URL 指向可用数据库,README 未给出数据库的安装步骤。
Q:提示缺少 KORVUS_DATABASE_URL 怎么办?
A:确认已在本机执行 export KORVUS_DATABASE_URL="你的连接串",且同一终端窗口下运行 Python 脚本,环境变量不会跨窗口保留。
Q:为什么要用 asyncio.run?
A:README 中 add_pipeline、upsert_documents、rag 都是 async 函数,必须用 asyncio 事件循环执行,否则协程不会运行。
Q:检测不到文档或检索不到内容?
A:先执行 upsert_documents 写入文档并等待向量化完成,再做 rag 查询;同时确认检索的字段名 text 与写入时一致。
Q:能不能换成别的嵌入或对话模型?
A:可以,Pipeline 与 chat.model 都只是配置项,换成本地或远程可用的模型名即可,具体支持范围参考官方文档。
注意事项
- README 只提供 pip 安装方式,未提供 Docker、源码编译或 Rust/JS 绑定的安装命令,请勿自行臆造。
- 所有示例都是异步接口,脚本中必须用 asyncio.run 驱动。
- Pipeline 的嵌入模型与 chat 的 LLM 首次调用可能需要下载或联网,注意网络与耗时。
- 更多用法见官方文档 https://postgresml.org/docs/open-source/korvus/
核心亮点
- 单查询完成嵌入、检索、重排、生成,省去多系统集成和网络开销
- 基于 Postgres 扩展,数据与索引同库,事务一致性和备份简单
- 提供 Python、JS、Rust、C 多语言绑定,适配不同技术栈
不足之处
- 依赖 Postgres,对非 PG 用户迁移成本高
- 文档/社区待观察
适用场景
- 需要快速构建 RAG 问答应用的团队,减少架构复杂度
- 已有 Postgres 基础设施,希望统一数据与向量检索的场景
- 对查询延迟敏感,需要避免跨服务调用开销的实时搜索
替代项目
pgvector、Lantern、PostgresML
上一篇:CAG
下一篇:Awesome-LLM-RAG
同类项目推荐
openserp
开源
自建搜索 API,六大引擎结果一键拿
Self-hosted web search for AI agents and SEO. Google, Bing, Yandex, Baidu, DuckDuckG···
chatgpt_system_prompt
开源
看透 GPT 系统提示词,搞懂提示注入怎么玩
A collection of GPT system prompts and various prompt injection/leaking knowledge.
VideoRAG
开源
把视频变成可检索的知识库,直接问答还能给依据
VideoRAG: Retrieval-Augmented Generation over Video Corpus
Aix-DB
开源
一句话问数据,自动出图出结论
Aix-DB 基于 LangChain/LangGraph 框架,结合 MCP Skills 多智能体协作架构,实现自然语言···
tenk
开源
直接问 SEC 文件,投资问题秒回答案
Chat with SEC filings for any investment question
Vera
开源
本地离线搜索代码,精准定位符号和文件
Local code search combining BM25, vector similarity, and cross-encoder reranking. Pa···
chatgpt-custom-knowledge-chatbot
开源
上传你的文档,马上拥有懂业务的问答机器人
This open source chatbot project lets you create a chatbot that uses your own data t···
SCM
开源
用一句话搜出本地图片和视频里的画面
Multimodal visual memory search on macOS
Awesome-World-Models
开源
一页看懂世界模型论文、代码与落地方向
A comprehensive list of papers for the definition of World Models and using World Mo···
