ByteNoteByteNote

字节笔记本

2026年8月29日

开源 DeepSearch:企业端深度搜索怎么部署

API中转
¥120

想给团队搞一套能自己部署的「深度搜索」时,很多人会卡在两件事上:外网资料怎么查得准,内网文档怎么接得上。熊布朗在 DeepToAI 上演示过的那套 Open Source DeepSearch(当时挂在 s.deeptoai.com),底层其实就是开源的 Scira:用 Vercel AI SDK 做流式对话,再挂上 Exa / Tavily / Firecrawl 这类检索与抓取接口。下面按「能跑起来 → 能改成中文输出 → 能接到企业资料」这条线走一遍。

它到底解决什么问题

Scira(以前叫 MiniPerplx)不是又一个聊天框,而是一个带引用的研究型搜索前端。你丢一个问题进去,它会拆任务、并行检索、交叉核对,最后给出带引用的答案。官方站点是 scira.ai,协议是 AGPL-3.0,适合自建。

对企业侧更有用的几点:

  • 检索和生成可以拆开配:检索走英文源,回答用中文模型,是常见改法。
  • 搜索提供商可换:Exa、Tavily、Firecrawl 等,按预算和合规选。
  • 模式很多:Web、Academic、Extreme(更深一层的多步研究)、GitHub、代码解释器等。
  • 有 Connectors 方向(Google Drive / Notion / OneDrive),方便往内网知识库靠。

如果你要的是「Plan → Search → Analysis」那种长报告流水线,那是另一类 DeepResearch 项目(例如 dzhng/deep-research);本文先把 Scira 这条 DeepSearch 部署线讲清楚。

本地最快跑通:Docker Compose

前提:本机有 Docker / Docker Compose,以及至少一把可用的模型 API Key(OpenAI、Anthropic、Google、xAI 等任选)。

bash
git clone https://github.com/zaidmukaddam/scira.git
cd scira
cp .env.example .env

.env 里先填最小集合,别一次把几十个可选 Key 全配齐:

bash
# 至少一把聊天模型
OPENAI_API_KEY=sk-...
# 或 ANTHROPIC_API_KEY / GOOGLE_GENERATIVE_AI_API_KEY / XAI_API_KEY

# 检索(至少开一个)
EXA_API_KEY=...
# 或 TAVILY_API_KEY / FIRECRAWL_API_KEY

# 基础基础设施
DATABASE_URL=postgresql://...
REDIS_URL=redis://...
BETTER_AUTH_SECRET=$(openssl rand -hex 32)

然后:

bash
docker compose up

浏览器打开 http://localhost:3000。Compose 会把应用拉起来;数据库 / Redis 按仓库里的 docker-compose.yml 来,缺服务时对照 compose 文件补容器。

不用 Docker 也可以:

bash
bun install
cp .env.example .env.local
# 填好 Key 后
bun run dev

一键上云:Vercel

仓库 README 提供了 Deploy with Vercel 按钮。Clone 时会要求填一长串环境变量。企业试用建议策略:

  1. 先只开 1 个 LLM Provider + 1 个 Search Provider。
  2. DATABASE_URL 用 Neon / Supabase / RDS 任一 Postgres。
  3. REDIS_URL 用 Upstash。
  4. 登录相关的 GITHUB_CLIENT_* / GOOGLE_CLIENT_* 可以后补;内部试用先靠本机或关掉公开注册。
  5. 分析类 NEXT_PUBLIC_POSTHOG_* 可以空着。

部署完成后,把域名指到内网或加 IP 白名单 / SSO,再对外开放。

改成「英文检索,中文输出」

演示里常见的改法,本质是两层提示和模型分工:

  1. 检索层:让 Agent 生成的搜索 query 保持英文(学术源、英文文档召回通常更好)。
  2. 生成层:系统提示里写死「最终回答必须使用简体中文,并保留原文关键术语」。

实操上可以:

  • 在 Scira 的系统 / 模式提示(仓库 ai/lib/ 下的 prompt 与 agent 配置)里加一条:Search queries in English. Final answer in Simplified Chinese.
  • 聊天模型换成对中文更稳的那一把(例如国内可达的 OpenAI 兼容接口,或 Claude / Gemini)。
  • Extreme / Academic 模式优先,复杂问题别只用纯 Chat 模式。

提示词不用堆很长,写清「query 语言」和「回答语言」两件事就够。

接企业内部资料

外网 DeepSearch 只是一半。企业端通常还要查 Wiki、Confluence、网盘、代码仓。可以按投入从小到大选:

  1. 现成 Connectors:Scira 已有 Google Drive / Notion / OneDrive 方向(偏 Pro / 配置项)。适合已经在这些 SaaS 上的团队。
  2. 自建检索 API:用 Firecrawl / 自建爬虫把内网文档抽成 Markdown,丢进向量库(pgvector、Qdrant 等),再给 Agent 加一个 search_internal_docs 工具。Scira 基于 Vercel AI SDK,加 tool 的路径很直观。
  3. 统一网关:公司已有 OpenAI 兼容网关时,把 OPENAI_API_KEY + base URL 指过去,检索 Key 仍走独立供应商,便于审计。

权限别忘了:内网工具必须带着用户身份去查,不能用一把上帝 Key 扫全库。

多种 API 怎么配才不炸账单

把 Key 分成三类看:

类别例子建议
生成OpenAI / Anthropic / Gemini / xAI日常用便宜快模型,Extreme 模式再升档
检索Exa / Tavily先开一个;Academic 场景再加 Exa
抓取Firecrawl只在需要整页正文时启用

速率限制用 Upstash Redis + 仓库自带的限流逻辑。对内服务务必设 CRON_SECRET、关掉不必要的 NEXT_PUBLIC_* 分析上报。

验收清单

部署完用这几个问题自测:

  • 「对比 Postgres 和 MySQL 在 JSON 查询上的差异」——应出现带链接的引用。
  • 同一问题强制中文回答——术语保留英文、句子是中文。
  • 丢一个只存在于内网文档的专有名词——接了 internal tool 后应能命中,而不是胡编。
  • Extreme 模式跑一个需要多跳的问题——应能看到多轮检索,而不是一次搜索就收工。

相关链接

DeepSearch 这类东西,难点不在「装得上」,而在检索源、提示词语言策略和内网权限三件事对齐。先把 Scira 用 Docker 跑通,再一点点换成自己的模型和文档源,通常比从零写 Agent 省很多时间。

分享: