agentic_huge_data_base / wiki
页面 Argilla · 1.2 架构总览·DeepWiki 中文全文译文

1.2 · 架构总览(Architecture Overview)

人工复核与反馈数据 · 聚焦本章的模块关系、源码依据与实现要点。

项目Argilla 章节1.2 状态全文译文 模块安装与启动、系统架构、界面与交互、配置治理
源码线索
  • argilla-frontend/CHANGELOG.md
  • argilla-frontend/components/features/annotation/container/questions/form/span/EntityLabelSelection.component.vue
  • argilla-frontend/components/features/annotation/settings/Validation.vue
  • argilla-frontend/components/features/dataset-creation/configuration/DatasetConfigurationForm.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationFieldSelector.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationLabels.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationQuestion.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationRating.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationSpan.vue
  • argilla-frontend/package.json
模块标签
  • 安装与启动
  • 系统架构
  • 界面与交互
  • 配置治理
  • 评测、反馈与人工复核

章节正文

架构总览

架构总览

相关源文件

本章引用的主要源码文件:

  • argilla-frontend/CHANGELOG.md
  • argilla-frontend/components/features/annotation/container/questions/form/span/EntityLabelSelection.component.vue
  • argilla-frontend/components/features/annotation/settings/Validation.vue
  • argilla-frontend/components/features/dataset-creation/configuration/DatasetConfigurationForm.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationFieldSelector.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationLabels.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationQuestion.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationRating.vue
  • argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationSpan.vue
  • argilla-frontend/package.json
  • argilla-frontend/translation/de.js
  • argilla-frontend/translation/en.js
  • argilla-frontend/translation/es.js
  • argilla-frontend/v1/domain/entities/hub/DatasetCreation.test.ts
  • argilla-frontend/v1/domain/entities/hub/QuestionCreation.ts
  • argilla-frontend/v1/domain/entities/hub/Subset.ts
  • argilla-server/CHANGELOG.md
  • argilla-server/src/argilla_server/_version.py
  • argilla-v1/src/argilla_v1/_version.py
  • argilla/CHANGELOG.md
  • argilla/src/argilla/__init__.py
  • argilla/src/argilla/_version.py
  • docs/_source/_common/tabs/argilla_install_python.md
  • docs/_source/community/contributing.md
  • docs/_source/community/developer_docs.md
  • docs/_source/community/migration-rubrix.md
  • docs/_source/getting_started/installation/deployments/docker.md
  • docs/_source/getting_started/installation/deployments/docker_compose.md
  • docs/_source/getting_started/installation/deployments/python.md
  • docs/_source/reference/cli.md
  • docs/_source/reference/notebooks.rst
  • docs/migration-rubrix.md
  • docs/template.ipynb

目的与范围

本文档提供 Argilla 架构的高层概述,解释主要组件、它们之间的交互以及系统中的数据流。它从技术角度阐述了 Argilla 如何作为数据标注和 AI 模型改进平台运行。如需了解使用或与单个组件交互的更多具体信息,请参考其他维基页面,例如 Argilla SDKArgilla 服务器Argilla 前端

核心系统组件

高层架构

Argilla 系统由三个主要组件组构成:

Argilla · 高层架构 · 图 1
Argilla · 高层架构 · 图 1

来源: argilla/CHANGELOG.md argilla-server/CHANGELOG.md docs/_source/community/developer_docs.md

Argilla Python SDK

Argilla SDK 是平台的主要编程接口。它使用户能够创建和管理数据集、记录日志以及检索已标注的数据。SDK 作为 Argilla 服务器 REST API 的客户端运行。

Argilla · Argilla Python SDK · 图 2
Argilla · Argilla Python SDK · 图 2

来源: argilla/src/argilla/__init__.py argilla/src/argilla/_version.py

Argilla 服务器

Argilla 服务器的核心基于 FastAPI 构建。它提供 RESTful API 接口用于管理所有 Argilla 资源,并处理认证、授权和业务逻辑。

Argilla · Argilla 服务器 · 图 3
Argilla · Argilla 服务器 · 图 3

来源: argilla-server/src/argilla_server/_version.py argilla-server/CHANGELOG.md

数据库

Argilla 使用关系型数据库存储数据集、记录、用户、工作区和标注的元数据:

  1. SQLite - 默认内置选项,主要用于开发
  2. PostgreSQL - 推荐用于生产部署

数据库存储用户账户、工作区、数据集配置和标注元数据。

来源: docs/_source/community/developer_docs.md

搜索引擎

Argilla 使用搜索引擎作为其向量数据库,用于存储记录数据并支持以下功能:

  1. 向量相似性搜索
  2. 全文文档搜索
  3. 结构化查询过滤

支持的引擎:

  • Elasticsearch(版本 ≥8.5)
  • OpenSearch(版本 ≥2.4)

来源: docs/_source/community/developer_docs.md docs/_source/getting_started/installation/deployments/docker.md

Redis 队列

Redis 用作消息代理和队列系统,用于管理后台任务,例如:

  1. 重新索引数据集和记录
  2. 处理 Webhook 事件
  3. 运行导入/导出操作

来源: docs/_source/community/developer_docs.md argilla-server/CHANGELOG.md

Argilla 前端

Argilla UI 使用 Vue.js 和 Nuxt 构建,提供现代化的 Web 界面,用于数据标注、数据集管理和其他平台功能。

Argilla · Argilla 前端 · 图 4
Argilla · Argilla 前端 · 图 4

来源: argilla-frontend/package.json argilla-frontend/CHANGELOG.md

核心数据模型

Argilla 的数据模型围绕数据集、记录、响应和建议展开:

Argilla · 核心数据模型 · 图 5
Argilla · 核心数据模型 · 图 5

来源: argilla-frontend/v1/domain/entities/hub/Subset.ts argilla-frontend/v1/domain/entities/hub/QuestionCreation.ts

关键实体关系
  • 数据集:包含配置设置和记录集合
  • 设置:定义数据集的结构,包括字段、问题和元数据
  • 字段:表示向用户展示的数据字段(文本、图片、对话或自定义)
  • 问题:表示标注任务(标签选择、评分、排序等)
  • 记录:待标注的单个数据项,包含字段、元数据和向量
  • 响应:用户对记录上特定问题的标注
  • 建议:预先计算的答案建议(通常来自 AI 模型)

标注工作流

Argilla 中典型的标注工作流包括创建数据集、记录日志、标注数据和导出结果:

Argilla · 标注工作流 · 图 6
Argilla · 标注工作流 · 图 6

来源: argilla-frontend/components/features/dataset-creation/configuration/DatasetConfigurationForm.vue argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationQuestion.vue argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationRating.vue argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationLabels.vue argilla-frontend/components/features/dataset-creation/configuration/questions/DatasetConfigurationSpan.vue

部署架构

Argilla 提供多种部署选项,以适应不同的需求和环境:

Argilla · 部署架构 · 图 7
Argilla · 部署架构 · 图 7

来源: docs/_source/getting_started/installation/deployments/python.md docs/_source/getting_started/installation/deployments/docker.md docs/_source/getting_started/installation/deployments/docker_compose.md

部署选项
  • Python + 本地依赖:安装 Python 包并单独设置依赖项
  • Docker Compose:使用单个命令启动完整堆栈
  • Kubernetes:使用 Helm Chart 部署到生产环境
  • Hugging Face Spaces:快速部署协作标注项目

系统交互与通信

Argilla 中的组件主要通过基于 HTTP 的 REST API 进行通信:

Argilla · 系统交互与通信 · 图 8
Argilla · 系统交互与通信 · 图 8

来源: argilla/CHANGELOG.md argilla-server/CHANGELOG.md

关键交互路径:

  1. SDK → 服务器:通过 REST API 调用创建/管理资源
  2. CLI → 服务器:通过 REST API 执行管理命令
  3. 前端 → 服务器:通过 REST API 发送用户界面请求
  4. 服务器 → 数据库:元数据存储和检索
  5. 服务器 → 搜索引擎:记录存储、搜索和检索
  6. 服务器 → Redis:后台任务调度和执行

服务器系统架构

Argilla 服务器采用分层架构模式:

Argilla · 服务器系统架构 · 图 9
Argilla · 服务器系统架构 · 图 9

来源: argilla-server/CHANGELOG.md docs/_source/community/developer_docs.md

结论

Argilla 的架构旨在提供一个灵活、可扩展的平台,用于数据标注和 AI 模型改进。该系统采用客户端-服务器模型,各组件之间职责清晰分离。模块化设计支持多种部署选项,并能与各种 AI 工作流集成,使其能够适应不同的使用场景和环境。

组件间通信广泛使用 REST API,为客户端库、服务器端逻辑和前端 UI 之间提供了清晰的接口。这种架构使 Argilla 能够支持广泛的标注任务和工作流,同时保持一致且可靠的用户体验。