<p align="center">
<img height="100" src="https://gips1.baidu.com/it/u=2133452394,3134354526&fm=3081&app=3081&f=PNG?w=4978&h=4945" alt="Trieve Logo">
</p>
<p align="center">
<strong><a href="https://dashboard.trieve.ai">注册 (1k 段落免费)</a> | <a href="https://pdf2md.trieve.ai">PDF2MD</a> | <a href="https://docs.trieve.ai">Hacker News 搜索引擎</a> | <a href="https://docs.trieve.ai">文档</a> | <a href="https://cal.com/nick.k/meet">与维护者见面</a> | <a href="https://discord.gg/eBJXXZDB8z">Discord</a> | <a href="https://matrix.to/#/#trieve-general:trieve.ai">Matrix</a>
</strong>
</p>
<p align="center">
<a href="https://github.com/devflowinc/trieve/stargazers">
<img src="https://img.shields.io/github/stars/devflowinc/trieve.svg?style=flat&color=yellow" alt="GitHub Stars"/>
</a>
<a href="https://discord.gg/CuJVfgZf54">
<img src="https://img.shields.io/discord/1130153053056684123.svg?label=Discord&logo=Discord&colorB=7289da&style=flat" alt="加入 Discord"/>
</a>
<a href="https://matrix.to/#/#trieve-general:trieve.ai">
<img src="https://img.shields.io/badge/matrix-join-purple?style=flat&logo=matrix&logocolor=white" alt="加入 Matrix"/>
</a>
<a href="https://smithery.ai/server/trieve-mcp-server">
<img src="https://smithery.ai/badge/trieve-mcp-server" alt="smithery 徽章"/>
</a>
<a href="https://insiders.vscode.dev/redirect?url=vscode%3Amcp%2Finstall%3F%257B%2522name%2522%253A%2522trieve-mcp-server%2522%252C%2522command%2522%253A%2522npx%2522%252C%2522args%2522%253A%255B%2522more%2520args...%2522%255D%257D">
<img src="https://img.shields.io/badge/vscode-mcp-install?style=flat&logoColor=%230078d4&label=vscode-mcp&labelColor=%230078d4&link=https%3A%2F%2Finsiders.vscode.dev%2Fredirect%3Furl%3Dvscode%253Amcp%252Finstall%253F%25257B%252522name%252522%25253A%252522trieve-mcp-server%252522%25252C%252522command%252522%25253A%252522npx%252522%25252C%252522args%252522%25253A%25255B%252522more%252520args...%252522%25255D%25257D" alt="vscode mcp 安装徽章"/>
</a>
</p>
<h2 align="center">
<b>一站式解决方案:搜索、推荐和RAG</b>
</h2>
<a href="https://tridge.ai">
<img src="https://gips2.baidu.com/it/u=1049174612,470487271&fm=3081&app=3081&f=WEBP?w=1903&h=1056">
</a>
快速链接
功能
- 🔒 自托管在您的VPC或本地环境:我们提供了完整的自托管指南,适用于AWS、GCP、Kubernetes以及Docker Compose,详情请参阅我们的文档页面。
- 🧠 语义密集向量搜索:集成OpenAI或Jina嵌入模型和Qdrant,提供语义向量搜索。
- 🔍 错误容忍全文本/神经搜索:每个上传的段落都会通过naver/efficient-splade-VI-BT-large-query进行向量化处理,以实现错误容忍的高质量神经稀疏向量搜索。
- 🖊️ 子句高亮:在搜索时高亮匹配的单词或句子,并加粗显示,以增强用户体验。感谢simsearch项目!
- 🌟 推荐:使用推荐API找到相似的段落(如果使用分组,则为文件)。如果你有一个用户可以收藏、点赞或书签内容的平台,这非常有用。
- 🤖 方便的RAG API路由:我们集成了OpenRouter,为你提供访问任何你喜欢的LLM用于RAG的权限。尝试我们的完全管理的RAG带主题记忆管理路由或选择自己的上下文RAG。
- 💼 自带模型:如果你想的话,你可以自带文本嵌入、SPLADE、交叉编码重排序和/或大型语言模型(LLM),并将其接入我们的基础设施。
- 🔄 混合搜索与交叉编码重排序:为了获得最佳结果,请使用BAAI/bge-reranker-large重排序优化的混合搜索。
- 📆 最近偏置:轻松地使搜索结果偏向最近的内容,防止过时。
- 🛠️ 可调商品化:使用点击、添加到购物车或引用等信号调整相关性。
- 🕳️ 过滤:支持日期范围、子字符串匹配、标签、数值和其他类型的过滤。
- 👥 分组:标记多个段落为同一文件的一部分,并按文件级别搜索,确保顶级结果不会重复出现。
我们缺少了你的用例所需的功能吗? - 请拨打628-222-4090,创建一个Github问题,或加入Matrix社区告诉我们!我们是一个小公司,仍然非常亲力亲为,渴望构建你需要的东西;专业服务可用。
在Linux上进行本地开发
通过Smithery安装
要通过Smithery自动安装Trieve for Claude Desktop:
npx -y @smithery/cli install trive-mcp-server --client claude
Debian/Ubuntu 所需的软件包
sudo apt install curl \
gcc \
g++ \
make \
pkg-config \
python3 \
python3-pip \
libpq-dev \
libssl-dev \
openssl
Arch 所需的软件包
sudo pacman -S base-devel postgresql-libs
安装NodeJS和Yarn
你可以使用其安装脚本安装NVM。
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
你应该重启终端以更新带有NVM的bash配置文件。然后,你可以安装NodeJS LTS版本和Yarn。
nvm install --lts
npm install -g yarn
创建服务器临时目录
mkdir server/tmp
安装rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
安装cargo-watch
cargo install cargo-watch
设置环境变量
你可能需要在./frontends中创建analytics目录。
cp .env.analytics ./frontends/analytics/.env
cp .env.chat ./frontends/chat/.env
cp .env.search ./frontends/search/.env
cp .env.example ./server/.env
cp .env.dashboard ./frontends/dashboard/.env
将你的LLM_API_KEY添加到./server/.env
这里有一份获取该密钥的指南。
获取密钥后步骤
- 打开
./server/.env文件。
- 将
LLM_API_KEY的值替换为你的OpenAI API密钥。
- 将
OPENAI_API_KEY的值替换为你的OpenAI API密钥。
在终端中导出以下密钥用于本地开发
PAGEFIND_CDN_BASE_URL和S3_SECRET_KEY_CSVJSONL可以设置为一串随机字符串。
export OPENAI_API_KEY="your_OpenAI_api_key" \
LLM_API_KEY="your_OpenAI_api_key" \
PAGEFIND_CDN_BASE_URL="lZP8X4h0Q5Sj2ZmV,aAmu1W92T6DbFUkJ,DZ5pMvz8P1kKNH0r,QAqwvKh8rI5sPmuW,YMwgsBz7jLfN0oX8" \
S3_SECRET_KEY_CSVJSONL="Gq6wzS3mjC5kL7i4KwexnL3gP8Z1a5Xv,V2c4ZnL0uHqBzFvR2NcN8Pb1g6CjmX9J,TfA1h8LgI5zYkH9A9p7NvWlL0sZzF9p8N,pKr81pLq5n6MkNzT1X09R7Qb0Vn5cFr0d,DzYwz82FQiW6T3u9A4z9h7HLOlJb7L2V1" \
GROQ_API_KEY="GROQ_API_KEY_if_applicable"
启动本地开发所需的docker容器服务
cat .env.chat .env.search .env.server .env.docker-compose > .env
./convenience.sh -l
安装前端包用于本地开发
cd frontends
yarn
cd ..
cd clients/ts-sdk
yarn build
cd ../..
启动本地开发的服务
建议通过tmuxp,详见此处指南或终端标签来管理服务。
cd frontends
yarn
yarn dev
cd server
cargo watch -x run
cd server
cargo run --bin ingestion-worker
cd server
cargo run --bin file-worker
cd server
cargo run --bin delete-worker
cd search
yarn
yarn dev
验证工作设置
在cargo构建完成后(执行tmuxp load trieve之后):
测试交叉编码重排序模型的附加说明
要在本地开发中测试Cross Encoder重排序器,
- 点击数据集,进入数据集设置 -> 数据集选项 -> 额外选项,并取消选中
全文启用选项。
- 在嵌入设置中,选择你的重排序器模型,并在相邻的文本框中输入相应的密钥,然后保存。
- 在搜索游乐场中,设置类型 -> 语义,并选择重排序 -> 交叉编码。
- 如果在嵌入设置中选择了AIMon重排序器,你可以在搜索游乐场中输入可选的任务定义,以指定上下文文档的领域给AIMon重排序器。
调试本地开发的问题
如有需要,请在discord寻求帮助。我们随时准备并乐于助人。
通过获取确切生成的SQL来调试diesel
diesel::debug_query(&query).to_string();
运行评估
评估包加载了一个mcp客户端,然后运行index.ts文件,因此在测试之间无需重新构建。你可以在npx命令前缀中加载环境变量。完整文档可以在这里找到。
OPENAI_API_KEY=your-key npx mcp-eval evals.ts clients/mcp-server/src/index.ts
用于测试Stripe功能的本地设置
安装Stripe CLI。
stripe login
stripe listen --forward-to localhost:8090/api/stripe/webhook
- 在
server/.env中的STRIPE_WEBHOOK_SECRET设置为响应中的webhook签名密钥。
stripe products create --name trieve --default-price-data.unit-amount 1200 --default-price-data.currency usd
stripe plans create --amount=1200 --currency=usd --interval=month --product={来自第3步响应的ID}
贡献者
<a href="https://github.com/devflowinc/tridge/graphs/contributors">
<img alt="贡献者" src="https://contrib.rocks/image?repo=devflowinc/tridge"/>
</a>