Omni 完全指南:开源职场 AI 搜索与助手平台让你的工作效率提升 400%
引言
在现代职场中,信息分散在各个角落——Google Drive、Gmail、Slack、Confluence、Jira……每天花费大量时间在不同应用间切换搜索信息?Omni 来了。
Omni 是一个开源的职场 AI 助手和搜索平台,能够连接你所有的职场应用,提供统一的搜索界面和智能 AI 对话助手。最重要的是:完全自托管,数据永不离开你的网络。
本文将带你从零开始部署 Omni,并展示如何用它提升团队工作效率。
什么是 Omni?
Omni 是由 getomnico 团队开发的开源职场搜索与 AI 助手平台。它的核心理念很简单:用一个工具连接所有职场应用,用 AI 帮你快速找到信息并完成工作。
核心特性
- 统一搜索:连接 Google Drive/Gmail、Slack、Confluence、Jira 等应用,支持全文搜索(BM25)和语义搜索(pgvector)
- AI 助手:聊天界面支持工具调用,可搜索连接的应用、阅读文档、在沙箱容器中执行 Python/bash 代码分析数据
- 自托管部署:完全运行在你的基础设施上,数据不出内网
- 权限继承:尊重源系统权限,用户只能看到已授权访问的数据
- 自带 LLM:支持 Anthropic、OpenAI、Gemini 或通过 vLLM 使用开源模型
- 简单部署:Docker Compose 适用于单服务器,Terraform 支持生产级 AWS/GCP 部署
技术架构亮点
Omni 的技术选型非常独特:全部使用 Postgres(ParadeDB)。BM25 全文搜索、pgvector 语义搜索、所有应用数据都存储在 Postgres 中。无需 Elasticsearch,无需专用向量数据库——一个数据库搞定所有。
核心服务使用 Rust(搜索器、索引器、连接器管理器)、Python(AI/LLM 编排)和 SvelteKit(Web 前端)。每个数据源连接器作为独立的轻量级容器运行,允许使用不同语言和依赖而不互相影响。
快速开始:30 分钟部署 Omni
前置要求
- Docker 和 Docker Compose
- 至少 4GB RAM(推荐 8GB)
- 一个 LLM API 密钥(Anthropic/OpenAI/Gemini 等)
步骤 1:克隆仓库
git clone https://github.com/getomnico/omni.git cd omni
步骤 2:配置环境变量
复制示例环境文件并修改:
cp .env.example .env
编辑 .env 文件,配置以下关键变量:
# LLM 配置(以 Anthropic 为例) LLM_PROVIDER=anthropic LLM_API_KEY=your-anthropic-api-key LLM_MODEL=claude-sonnet-4-5-20260728 # 数据库配置 POSTGRES_USER=omni POSTGRES_PASSWORD=your-secure-password POSTGRES_DB=omni # 应用配置 OMNI_SECRET_KEY=generate-a-random-secret-key OMNI_FRONTEND_URL=http://localhost:3000
步骤 3:启动服务
使用 Docker Compose 启动所有服务:
docker compose up -d
等待所有容器启动完成:
docker compose ps
你应该看到以下服务运行:
omni-frontend:Web 前端omni-api:API 服务omni-searcher:搜索服务omni-indexer:索引服务omni-db:Postgres 数据库
步骤 4:访问 Web 界面
打开浏览器访问 http://localhost:3000,你将看到 Omni 的登录界面。
首次登录使用默认管理员账户(在 .env 中配置),登录后即可开始配置连接器。
配置数据源连接器
Omni 支持多种数据源连接器,以下是常用连接器的配置方法。
Google Workspace 连接器
- 在 Google Cloud Console 创建项目并启用 Drive API 和 Gmail API
- 创建 OAuth 2.0 凭据
- 在 Omni 管理界面添加 Google Workspace 连接器
- 输入客户端 ID 和密钥
- 授权 Omni 访问你的 Google Workspace 数据
Slack 连接器
- 在 Slack API 页面创建新应用
- 添加所需权限(
channels:read、files:read、im:read等) - 安装应用到工作区
- 在 Omni 中输入 Bot Token
Confluence 连接器
- 生成 Confluence API Token
- 在 Omni 中输入 Confluence 实例 URL 和 API Token
- 选择要索引的空间
本地文件连接器
Omni 还可以索引本地文件系统:
# 在 docker-compose.yml 中挂载目录 volumes: - /path/to/your/documents:/data/local-files:ro
然后在 Omni 界面配置本地文件连接器,指定要索引的目录。
使用 AI 助手
Omni 的 AI 助手是其核心功能。以下是使用场景示例。
场景 1:快速查找文档
用户:帮我找一下上季度关于产品路线图的会议记录 Omni:找到 3 条相关结果: 1. [Fireflies] 产品路线图讨论 - 2025 年 12 月 15 日 2. [Google Drive] Q4 产品路线图.pptx 3. [Confluence] 2026 产品规划空间 需要我总结这些内容吗?
场景 2:数据分析
用户:分析上个月 Slack 中关于客户反馈的讨论 Omni:正在分析... 找到 47 条相关消息。主要话题: - 登录问题(18 次提及) - 新功能请求(15 次提及) - 性能问题(9 次提及) - 其他(5 次提及) 需要我生成详细报告吗?
场景 3:代码执行
Omni 的 AI 助手可以在沙箱容器中执行代码:
用户:从 HubSpot 导出上周新增的联系人,按行业分类统计 Omni:正在执行 Python 脚本... 完成!统计结果: - 科技行业:45 个联系人 - 金融行业:32 个联系人 - 医疗行业:28 个联系人 - 其他:67 个联系人 总计:172 个新联系人 需要导出为 CSV 吗?
高级配置
自定义 LLM 模型
Omni 支持通过 vLLM 部署开源模型:
# 在 docker-compose.yml 中添加 vLLM 服务
vllm:
image: vllm/vllm-openai
command: --model meta-llama/Llama-3-70b
ports:
- "8000:8000"
volumes:
- /path/to/models:/models
然后在 .env 中配置:
LLM_PROVIDER=openai LLM_API_KEY=not-needed LLM_BASE_URL=http://vllm:8000/v1 LLM_MODEL=meta-llama/Llama-3-70b
权限配置
Omni 支持细粒度权限控制:
# permissions.yaml
roles:
- name: admin
permissions:
- search:all
- connectors:manage
- users:manage
- name: user
permissions:
- search:own
- connectors:view
- name: guest
permissions:
- search:limited
性能优化
对于大型部署,建议进行以下优化:
- 增加 Postgres 内存:
# 在 postgres.conf 中 shared_buffers = 4GB effective_cache_size = 12GB work_mem = 256MB
- 调整索引策略:
-- 为常用搜索字段创建索引
CREATE INDEX CONCURRENTLY idx_content_search ON documents USING gin(to_tsvector('english', content));
- 启用缓存:
# 在 docker-compose.yml 中添加 Redis
redis:
image: redis:7-alpine
ports:
- "6379:6379"
安全最佳实践
网络安全
- 将 Omni 部署在内网,通过反向代理(如 Nginx)暴露
- 使用 HTTPS(推荐使用 Let’s Encrypt)
- 配置防火墙规则,仅允许必要端口
数据安全
- 定期备份 Postgres 数据库
- 使用强密码和密钥
- 启用审计日志
# 备份脚本示例 #!/bin/bash docker compose exec omni-db pg_dump -U omni omni | gzip > /backups/omni-$(date +%Y%m%d).sql.gz
访问控制
- 启用双因素认证(2FA)
- 定期审查用户权限
- 使用 SSO(如 Okta、Auth0)集成
常见问题解答
Q: Omni 支持哪些语言?
A: 目前支持英语,其他语言的语义搜索效果取决于使用的 LLM 模型。使用多语言模型(如 mBERT)可改善非英语搜索效果。
Q: 数据同步频率是多少?
A: 默认每 30 分钟同步一次。可在连接器配置中调整,最小间隔为 5 分钟。
Q: 能否离线使用?
A: 可以。使用本地部署的 LLM(如通过 vLLM 运行 Llama 3),Omni 可完全离线运行。
Q: 支持多少并发用户?
A: 取决于硬件配置。在 8GB RAM、4 核 CPU 服务器上,可支持约 50 个并发用户。生产环境建议使用 Kubernetes 进行水平扩展。
Q: 如何监控 Omni 运行状态?
A: Omni 提供 Prometheus 指标端点(/metrics),可集成 Grafana 进行监控。关键指标包括搜索延迟、索引队列长度、LLM 调用次数等。
总结
Omni 是一个强大的开源职场 AI 搜索与助手平台,具有以下优势:
- 统一入口:连接所有职场应用,无需切换
- 智能搜索:结合全文搜索和语义搜索,找信息更准确
- AI 助手:不仅能搜索,还能执行代码、分析数据
- 自托管:数据完全可控,适合对数据安全有要求的团队
- 开源免费:Apache 2.0 许可,可自由修改和分发
对于希望提升团队信息检索效率、构建内部 AI 助手的组织,Omni 是一个值得考虑的选择。