2026年3月8日 2 分钟阅读

Omni 完全指南:开源职场 AI 搜索与助手平台让你的工作效率提升 400%

tinyash 0 条评论
omni

引言

在现代职场中,信息分散在各个角落——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 连接器

  1. 在 Google Cloud Console 创建项目并启用 Drive API 和 Gmail API
  2. 创建 OAuth 2.0 凭据
  3. 在 Omni 管理界面添加 Google Workspace 连接器
  4. 输入客户端 ID 和密钥
  5. 授权 Omni 访问你的 Google Workspace 数据

Slack 连接器

  1. 在 Slack API 页面创建新应用
  2. 添加所需权限(channels:readfiles:readim:read 等)
  3. 安装应用到工作区
  4. 在 Omni 中输入 Bot Token

Confluence 连接器

  1. 生成 Confluence API Token
  2. 在 Omni 中输入 Confluence 实例 URL 和 API Token
  3. 选择要索引的空间

本地文件连接器

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

性能优化

对于大型部署,建议进行以下优化:

  1. 增加 Postgres 内存
# 在 postgres.conf 中
shared_buffers = 4GB
effective_cache_size = 12GB
work_mem = 256MB
  1. 调整索引策略
-- 为常用搜索字段创建索引
CREATE INDEX CONCURRENTLY idx_content_search ON documents USING gin(to_tsvector('english', content));
  1. 启用缓存
# 在 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 搜索与助手平台,具有以下优势:

  1. 统一入口:连接所有职场应用,无需切换
  2. 智能搜索:结合全文搜索和语义搜索,找信息更准确
  3. AI 助手:不仅能搜索,还能执行代码、分析数据
  4. 自托管:数据完全可控,适合对数据安全有要求的团队
  5. 开源免费:Apache 2.0 许可,可自由修改和分发

对于希望提升团队信息检索效率、构建内部 AI 助手的组织,Omni 是一个值得考虑的选择。

资源链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。