agentic_huge_data_base / wiki
页面 Onyx · 12 高级主题·DeepWiki 中文全文译文

12 · 高级主题

企业连接器与统一搜索 · 聚焦本章的模块关系、源码依据与实现要点。

项目Onyx 章节12 状态全文译文 模块测试、发布与运维、模型调用与提供方适配、接口与服务契约、界面与交互
源码线索
  • .github/CODEOWNERS
  • .vscode/launch.json
  • AGENTS.md
  • CLAUDE.md
  • backend/ee/onyx/configs/app_configs.py
  • backend/ee/onyx/feature_flags/__init__.py
  • backend/ee/onyx/feature_flags/factory.py
  • backend/ee/onyx/feature_flags/posthog_provider.py
  • backend/ee/onyx/server/billing/api.py
  • backend/ee/onyx/server/billing/models.py
模块标签
  • 测试、发布与运维
  • 模型调用与提供方适配
  • 接口与服务契约
  • 界面与交互
  • 检索、召回与索引

章节正文

高级主题

高级主题

相关源文件

以下文件为本维基页面的生成提供了上下文:

  • .github/CODEOWNERS
  • .vscode/launch.json
  • AGENTS.md
  • CLAUDE.md
  • backend/ee/onyx/configs/app_configs.py
  • backend/ee/onyx/feature_flags/__init__.py
  • backend/ee/onyx/feature_flags/factory.py
  • backend/ee/onyx/feature_flags/posthog_provider.py
  • backend/ee/onyx/server/billing/api.py
  • backend/ee/onyx/server/billing/models.py
  • backend/ee/onyx/server/billing/service.py
  • backend/ee/onyx/server/license/api.py
  • backend/ee/onyx/server/middleware/tenant_tracking.py
  • backend/ee/onyx/server/settings/__init__.py
  • backend/ee/onyx/server/tenants/api.py
  • backend/ee/onyx/server/tenants/billing.py
  • backend/ee/onyx/server/tenants/billing_api.py
  • backend/ee/onyx/server/tenants/models.py
  • backend/ee/onyx/server/tenants/product_gating.py
  • backend/ee/onyx/server/tenants/proxy.py
  • backend/ee/onyx/utils/posthog_client.py
  • backend/ee/onyx/utils/telemetry.py
  • backend/onyx/error_handling/__init__.py
  • backend/onyx/error_handling/error_codes.py
  • backend/onyx/error_handling/exceptions.py
  • backend/onyx/feature_flags/__init__.py
  • backend/onyx/feature_flags/factory.py
  • backend/onyx/feature_flags/flags.py
  • backend/onyx/feature_flags/interface.py
  • backend/onyx/hooks/executor.py
  • backend/onyx/server/features/build/.gitignore
  • backend/tests/external_dependency_unit/feature_flags/__init__.py
  • backend/tests/unit/ee/onyx/server/billing/test_billing_api.py
  • backend/tests/unit/ee/onyx/server/billing/test_billing_service.py
  • backend/tests/unit/ee/onyx/server/license/test_api.py
  • backend/tests/unit/ee/onyx/server/tenants/test_billing_api.py
  • backend/tests/unit/ee/onyx/server/tenants/test_product_gating.py
  • backend/tests/unit/ee/onyx/server/tenants/test_proxy.py
  • backend/tests/unit/onyx/connectors/confluence/test_rate_limit_handler.py
  • backend/tests/unit/onyx/error_handling/test_exceptions.py
  • backend/tests/unit/onyx/utils/test_telemetry.py

本文档涵盖了面向高级用户、贡献者和在生产或企业环境中部署 Onyx 的操作人员的高级功能与实现细节。主题包括企业版功能、LiteLLM 集成补丁、可观测性基础设施、Craft 构建系统以及 MCP 服务器等外部集成。

关于基本部署和配置,请参见安装与部署。关于核心认证和多租户架构,请参见认证与多租户。关于大语言模型(LLM)提供商配置,请参见大语言模型(LLM)提供商管理

企业版功能

Onyx 支持企业版(EE),该版本通过 ENABLE_PAID_ENTERPRISE_EDITION_FEATURES 标志启用,并在 backend/ee/ 目录中实现。这些功能包括高级计费管理、许可证强制执行以及多租户云编排。详情请参见企业版功能

许可与计费架构
Onyx · 许可与计费架构 · 图 1
Onyx · 许可与计费架构 · 图 1

关键组件:

组件位置用途
get_license_statusbackend/ee/onyx/server/license/api.py:62-66从数据库中检索席位使用情况和过期元数据。
claim_licensebackend/ee/onyx/server/license/api.py:109-114将 Stripe 会话 ID 兑换为已签名的许可证数据块。
gate_productbackend/ee/onyx/server/tenants/billing_api.py:66-69通过更新 Redis 中的 GATED_TENANTS_KEY 来限制租户访问。
update_seat_countbackend/ee/onyx/server/billing/service.py:54在本地实例和计费提供商之间同步席位数量。

来源:backend/ee/onyx/server/license/api.py:62-131backend/ee/onyx/server/billing/api.py:1-22backend/ee/onyx/server/tenants/billing_api.py:66-103backend/ee/onyx/server/tenants/product_gating.py:16-25

LiteLLM 集成与猴子补丁

Onyx 使用 LiteLLM 作为统一接口来对接多个大语言模型(LLM)提供商。然而,通过 apply_monkey_patches() 应用了多个运行时补丁,以修复上游在推理内容、工具调用和用量格式化方面的问题。详情请参见LiteLLM 集成与猴子补丁

来源:backend/onyx/llm/litellm_singleton/monkey_patches.py:1-47

可观测性与监控

Onyx 包含全面的可观测性基础设施,包括用于错误追踪的 Sentry、用于分析的 PostHog 以及 Prometheus 指标。详情请参见可观测性与监控

遥测与事件追踪
Onyx · 遥测与事件追踪 · 图 2
Onyx · 遥测与事件追踪 · 图 2

关键组件:

组件位置用途
event_telemetrybackend/ee/onyx/utils/telemetry.py:29-33捕获事件并刷新到 PostHog,同时丰富客户端 IP 信息。
identify_userbackend/ee/onyx/utils/telemetry.py:50-53更新 PostHog 用户档案以进行用户追踪。
POSTHOG_API_KEYbackend/ee/onyx/configs/app_configs.py:120主分析项目的配置项。
监控工作器AGENTS.md:65-71专门用于系统健康和指标收集的 Celery 工作器。

来源:backend/ee/onyx/utils/telemetry.py:29-64backend/ee/onyx/utils/posthog_client.py:22-35AGENTS.md:65-71

Craft 功能

Craft 功能(ENABLE_CRAFT)支持高级文档生成和沙箱能力。它集成了 Node.js 和 opencode CLI 来管理隔离的执行环境。详情请参见Craft 功能

来源:backend/onyx/configs/app_configs.py:136-138AGENTS.md:72-77

MCP 服务器与外部集成

Onyx 支持模型上下文协议(MCP),允许外部大语言模型(LLM)(如 Claude Desktop)通过工具和资源访问 Onyx 知识库。详情请参见MCP 服务器与外部集成

集成点:

  • MCP 服务器:通过 MCP_SERVER_ENABLED 启用,提供诸如 search_indexed_documents 等工具。backend/.vscode/launch.json:159-185
  • Slack/Discord 机器人:用于基于聊天的交互的专用监听器。backend/.vscode/launch.json:123-157
  • Celery 工作器:多种工作器类型(轻量型、重量型、文档抓取型)管理这些集成的后台生命周期。AGENTS.md:27-88

来源:backend/.vscode/launch.json:159-185AGENTS.md:27-88

大语言模型(LLM)追踪与评估

Onyx 提供了一个框架,用于追踪大语言模型(LLM)调用并评估检索和聊天响应的质量。这包括对 Braintrust 和 Langfuse 的支持。详情请参见大语言模型(LLM)追踪与评估

来源:backend/onyx/configs/app_configs.py:120-124