尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

从 Rubrix 平滑迁移到 Argilla:模块、命令、环境变量与 Elasticsearch 索引迁移完整指南

从 Rubrix 平滑迁移到 Argilla:模块、命令、环境变量与 Elasticsearch 索引迁移完整指南 从 Rubrix 平滑迁移到 Argilla模块、命令、环境变量与 Elasticsearch 索引迁移完整指南【免费下载链接】argillaArgilla is a collaboration tool for AI engineers and domain experts to build high-quality datasets项目地址: https://gitcode.com/GitHub_Trending/ar/argillaArgilla 是面向 AI 工程师与领域专家构建高质量数据集文本分类、NER、LLM 偏好标注、多模态等的开源协作工具。本文基于仓库中的官方迁移指南系统讲解从旧版 Rubrix 服务平滑过渡到 Argilla Server 的完整路径Python 模块与启动命令的替换、环境变量前缀变更、Elasticsearch 索引命名约定的变化以及通过ARGILLA_ENABLE_MIGRATION开关激活的自动化迁移流程。读完本文你将能够在不丢失历史数据集的前提下以渐进、可回滚的方式完成 Rubrix → Argilla 的升级。Rubrix 与 Argilla 的关系Rubrix 是 Argilla 的前身项目两者共享同一套核心数据模型与 API 设计。在新版 Argilla 中服务端argilla-server、Python SDKargilla以及为兼容旧代码而保留的argilla-v1层在仓库中并存argilla-server新一代 Argilla Server 的实现包含 API、数据库模型、搜索与迁移逻辑argilla新版 Python SDK 源码argilla-v1保留的 v1 兼容实现便于旧客户端代码在过渡期继续工作。因此从 Rubrix 迁移到 Argilla 的核心策略是代码层面对应用户只需改动导入模块名数据层面由服务端的迁移开关自动完成索引转换业务逻辑本身无需重写。Python 模块与启动命令的替换import 语句rubrix→argillaRubrix 时代的 Python 模块名为rubrix而新版统一为argilla其余 API 保持兼容。升级已有代码时只需将import rubrix as rb替换为import argilla as rb如果代码中有多处from rubrix import ...形式的导入同样把rubrix整体替换为argilla即可。新版 SDK 的入口类仍以rg.Argilla形式暴露例如在 argilla/src/argilla/client.py 中定义客户端入口初始化方式与旧版习惯一致。启动命令python -m rubrix→argilla server start旧版通过python -m rubrix启动服务新版改为统一的 CLI 命令# 旧方式Rubrix python -m rubrix # 新方式Argilla argilla server start这一命令在服务端 CLI 中有明确的注册实现argilla-server/src/argilla_server/cli/main.py 中通过typer定义了app.command(namestart, helpStarts the Argilla server)因此argilla server start是官方支持的标准启动入口。若需要同时管理数据库结构还可使用配套的argilla server database migrate命令见 argilla-server/src/argilla_server/cli/database/main.py。环境变量前缀迁移RUBRIX_→ARGILLA_所有环境变量的前缀从RUBRIX_统一改为ARGILLA_。例如RUBRIX_ELASTICSEARCH→ARGILLA_ELASTICSEARCHElasticsearch 端点默认http://localhost:9200RUBRIX_CORS_ORIGINS→ARGILLA_CORS_ORIGINSRUBRIX_DATABASE_URL→ARGILLA_DATABASE_URL服务端通过 pydantic 的BaseSettings统一读取配置在 argilla-server/src/argilla_server/settings.py 中明确设置了env_prefix ARGILLA_也就是说服务端只会识别以ARGILLA_开头的环境变量。这也解释了为什么旧的非前缀或RUBRIX_前缀变量在新版中会失效。官方迁移指南特别强调了一个兼容性边界从版本1.13.0起不再支持不带前缀的环境变量所有环境变量必须带有ARGILLA_前缀。推荐的配置迁移方式官方建议的最佳实践是同时为 Rubrix 与 Argilla 各保留一份环境变量配置。即先复制现有的RUBRIX_*变量再生成一份对应的ARGILLA_*变量。这样在迁移过程中如果出现问题需要回滚只需切回 Rubrix 配置即可无需重新构造环境。Elasticsearch 索引命名约定的变化Rubrix 与 Argilla 都在 Elasticsearch 中持久化数据集元数据与记录但索引命名约定发生了根本变化。服务端的常量定义位于 argilla-server/src/argilla_server/settings.py用途Rubrix 旧命名Argilla 新命名全部数据集的注册索引index pattern.rubrix.datasets-v0ar.datasets单个数据集的记录索引.rubrix.dataset.dataset_id.records-v0ar.dataset.dataset_id其中ar.dataset.{}中的占位符会被替换为具体的dataset_id。这一变化意味着旧索引与新索引不会冲突两者可以在 Elasticsearch 中共存迁移过程实际上是读取旧索引 → 写入新索引 → 为新索引建立别名而不是原地改写新旧命名均不带点前缀ar.而非.rubrix也体现了命名空间语义从隐藏索引到正式命名空间的转变。启用迁移流程ARGILLA_ENABLE_MIGRATION默认行为不迁移新版 Argilla Server 在默认情况下不会检查是否存在来自旧 Rubrix 实例的数据集直接启动后历史数据集对新服务不可见。这是出于安全考虑——避免迁移过程在用户不知情时改写 Elasticsearch 状态。开启迁移如果希望新服务自动识别旧 Rubrix 数据集需要在启动前设置ARGILLA_ENABLE_MIGRATION环境变量ARGILLA_ENABLE_MIGRATION1 argilla server start迁移过程的内部机制根据官方迁移指南该开关触发后服务端会依次执行以下操作读取旧索引信息从 Rubrix 实例的.rubrix.datasets-v0索引中读取所有历史数据集的元数据信息拷贝到新索引将数据集信息写入新的ar.datasets索引创建别名为每一个旧 Rubrix 记录索引创建一个符合新命名约定的别名例如将.rubrix.dataset.dataset_id.records-v0映射到ar.dataset.dataset_id命名空间下。通过别名而非复制数据的方式迁移过程不会复制或重复存储记录数据因此不会造成磁盘空间翻倍同时由于旧索引本身未被改写你在旧 Rubrix Server 中看到的变更仍然会通过别名在新 Argilla Server 中反映出来。这意味着迁移是渐进式的你可以在新老服务之间来回切换、逐步验证而不是一刀切式的一次性切换。迁移的关键边界官方指南明确提示了一个重要的方向性限制从 Argilla 新建的数据集在旧 Rubrix 实例中不可见。也就是说迁移是单向的老数据可以流向新服务新数据不会回流到旧服务。这一点决定了迁移窗口期的协作方式——团队应规划好何时从 Rubrix 全面切换至 Argilla避免在两边同时大量新建数据集导致数据割裂。迁移检查清单与回滚策略综合以上内容一次完整的 Rubrix → Argilla 迁移可以按以下步骤执行备份配置复制现有RUBRIX_*环境变量生成对应的ARGILLA_*版本保留两套配置以备回滚更新代码将代码中的import rubrix全部替换为import argillaAPI 调用保持不变启动新服务在确认 Elasticsearch 可达后使用ARGILLA_ENABLE_MIGRATION1 argilla server start启动验证数据检查新服务中是否能看到全部历史数据集及其记录抽样核对标注数据完整性逐步切换在迁移窗口期内让团队使用新服务完成日常标注任务确认稳定后再将旧服务下线收尾确认无需回滚后清理冗余的旧环境变量配置。若迁移过程中发现问题由于旧索引未被修改、且环境变量配置双份保留随时可以切回 Rubrix 继续工作待问题解决后重新执行迁移即可。深入阅读官方迁移文档docs/_source/community/migration-rubrix.md服务端索引命名与配置前缀定义argilla-server/src/argilla_server/settings.py服务端 CLI 命令注册argilla-server/src/argilla_server/cli/main.py服务端数据库迁移命令argilla-server/src/argilla_server/cli/database/旧版 v1 兼容代码层argilla-v1/src/argilla_v1/新版 SDK 客户端入口argilla/src/argilla/client.py【免费下载链接】argillaArgilla is a collaboration tool for AI engineers and domain experts to build high-quality datasets项目地址: https://gitcode.com/GitHub_Trending/ar/argilla创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表