字节笔记本
2026年8月29日
开源 DeepSearch:企业端深度搜索怎么部署
想给团队搞一套能自己部署的「深度搜索」时,很多人会卡在两件事上:外网资料怎么查得准,内网文档怎么接得上。熊布朗在 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 等任选)。
git clone https://github.com/zaidmukaddam/scira.git
cd scira
cp .env.example .env.env 里先填最小集合,别一次把几十个可选 Key 全配齐:
# 至少一把聊天模型
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)然后:
docker compose up浏览器打开 http://localhost:3000。Compose 会把应用拉起来;数据库 / Redis 按仓库里的 docker-compose.yml 来,缺服务时对照 compose 文件补容器。
不用 Docker 也可以:
bun install
cp .env.example .env.local
# 填好 Key 后
bun run dev一键上云:Vercel
仓库 README 提供了 Deploy with Vercel 按钮。Clone 时会要求填一长串环境变量。企业试用建议策略:
- 先只开 1 个 LLM Provider + 1 个 Search Provider。
DATABASE_URL用 Neon / Supabase / RDS 任一 Postgres。REDIS_URL用 Upstash。- 登录相关的
GITHUB_CLIENT_*/GOOGLE_CLIENT_*可以后补;内部试用先靠本机或关掉公开注册。 - 分析类
NEXT_PUBLIC_POSTHOG_*可以空着。
部署完成后,把域名指到内网或加 IP 白名单 / SSO,再对外开放。
改成「英文检索,中文输出」
演示里常见的改法,本质是两层提示和模型分工:
- 检索层:让 Agent 生成的搜索 query 保持英文(学术源、英文文档召回通常更好)。
- 生成层:系统提示里写死「最终回答必须使用简体中文,并保留原文关键术语」。
实操上可以:
- 在 Scira 的系统 / 模式提示(仓库
ai/、lib/下的 prompt 与 agent 配置)里加一条:Search queries in English. Final answer in Simplified Chinese. - 聊天模型换成对中文更稳的那一把(例如国内可达的 OpenAI 兼容接口,或 Claude / Gemini)。
- Extreme / Academic 模式优先,复杂问题别只用纯 Chat 模式。
提示词不用堆很长,写清「query 语言」和「回答语言」两件事就够。
接企业内部资料
外网 DeepSearch 只是一半。企业端通常还要查 Wiki、Confluence、网盘、代码仓。可以按投入从小到大选:
- 现成 Connectors:Scira 已有 Google Drive / Notion / OneDrive 方向(偏 Pro / 配置项)。适合已经在这些 SaaS 上的团队。
- 自建检索 API:用 Firecrawl / 自建爬虫把内网文档抽成 Markdown,丢进向量库(pgvector、Qdrant 等),再给 Agent 加一个
search_internal_docs工具。Scira 基于 Vercel AI SDK,加 tool 的路径很直观。 - 统一网关:公司已有 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 模式跑一个需要多跳的问题——应能看到多轮检索,而不是一次搜索就收工。
相关链接
- Scira 源码:https://github.com/zaidmukaddam/scira
- 在线体验:https://scira.ai
- DeepToAI(演示方个人站):https://deeptoai.com
- 若你要长篇研究报告流水线,可另看:https://github.com/dzhng/deep-research
DeepSearch 这类东西,难点不在「装得上」,而在检索源、提示词语言策略和内网权限三件事对齐。先把 Scira 用 Docker 跑通,再一点点换成自己的模型和文档源,通常比从零写 Agent 省很多时间。