argilla

argilla-ioApache-2.0活跃维护

面向 AI 工程师和领域专家的数据标注协作平台,支持主动学习和人机协同,帮助团队高效构建高质量训练数据集。

Argilla is a collaboration tool for AI engineers and domain experts to build high-quality datasets

v2.8.0发布于 2025-03-11 08:58 UTC5,196star +3 / 7 天516fork同步于 2026-11-10 23:37 UTC

怎么上手

由 README 提炼,执行前请确认
pip install argilla
pip install datasets
硬件要求按 README 说明

README 未说明硬件要求;服务端推荐部署在 Hugging Face Spaces,客户端仅需 pip 安装 SDK。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

让 AI 工程师和领域专家协作标注、管理数据,构建高质量训练数据集

面向 AI 工程师和领域专家的数据标注协作平台,支持主动学习和人机协同,帮助团队高效构建高质量训练数据集。

核心能力

  • 用 Python SDK 以编程方式定义数据集字段与标注问题
  • 支持文本分类、NER、LLM 偏好、多模态等多种标注任务
  • 通过 UI 过滤器、AI 反馈建议和语义搜索加速标注
  • 记录日志时可用 mapping 把外部数据字段映射到数据集
  • 可一键部署到 Hugging Face Spaces 作为服务端

容易踩的坑

pip 只装客户端,还需另行部署 Argilla Server(如 Hugging Face Spaces)才能连接使用;实例化客户端需提供 api_url 和 api_key;示例中加载 imdb 数据集需额外安装 datasets 包。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.8.0
  1. v2.8.0最新正式版2025-03-11 · 2025-03-11 08:58 UTC

    🔆 Release highlights

    The v2.8.0 comes with a better OAuth integration, and some other improvements and bug fixes.

    Better OAuth integration

    Now, you can extend the supported providers by adding social backends classes in the configuration file:

    
    providers:
      - name: apple-id
        client_id: "<client_id>" # You can use the ARGILLA_OAUTH2_APPLE_ID_CLIENT_ID environment variable
        client_secret: "<client_secret>" # You can use the ARGILLA_OAUTH2_APPLE_ID_CLIENT_SECRET environment variable
    
    extra_backends:
        - social_core.backends.apple.AppleIdAuth # Register the Apple OAuth2 provider backend
    ...
    

    Also, the KeyCloak provider is supported by default.

    You can visit the docs for more info.

    Some relevant improvements and bugfixes are:

    New Contributors

    Full Changelog: https://github.com/argilla-io/argilla/compare/v2.7.1...v2.8.0

  2. v2.7.12025-02-06 · 2025-02-06 14:33 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/argilla-io/argilla/compare/v2.7.0...v2.7.1

  3. v2.7.02025-01-21 · 2025-01-21 13:39 UTC
    查看更新说明

    🔆 Release highlights

    The v2.7.0 release includes some minor improvements and bugfixes

    Similarity score

    Return similarity score when searching by similarity

    
    import argilla as rg
    
    ...
    
    for record, score in dataset.records(similar=rg.Similar(
        name="vector",
        value=[0.1, 0.2, 0.3],
    )):
       ...
    

    Other relevant improvements and bugfixes are:

    • Create users and workspaces with predefined IDs (#5786)
    • Prevent index errors with empty chat fields (#5787)
    • Pass SSL verify parameter when configuring the Argilla client (#5789)

    New Contributors

    Full Changelog: https://github.com/argilla-io/argilla/compare/v2.6.0...v2.7.0

  4. v2.6.02024-12-18 · 2024-12-18 15:46 UTC
    查看更新说明

    🔆 Release highlights

    Push to hub

    Export your dataset to the Hugging Face Hub directly from the Argilla UI:

    1️⃣ Go to your dataset 2️⃣ Click on Push to Hub 3️⃣ Make sure you include your username or organization and a Hub Access Token with write permissions

    Share your progress

    Share your annotation progress on any Argilla dataset with the world!

    1️⃣ In your dataset, click on "Share progress" 2️⃣ Open your preferred social media platform 3️⃣ Start a post and paste the copied text 4️⃣ Publish and share with the world!

    Update user data

    You can update all information of a user. Here's an example of how to update the role of a user:

    import argilla as rg
    
    client = rg.Argilla(api_url="<ARGILLA_API_URL>", api_key="<ARGILLA_API_KEY>")
    
    user = client.users("username")
    user.role = "admin"
    user.update()
    

    Change record fields

    You can now update the content of record fields.

    import argilla as rg
    
    client = rg.Argilla(api_url="<ARGILLA_API_URL>", api_key="<ARGILLA_API_KEY>")
    
    dataset = client.datasets("my_dataset")
    record = next(dataset.records(limit=1))
    record.fields["text"] = "this is my updated text"
    record.update()
    
    # or several records at once
    records = list(dataset.records(...))
    
    for record in records:
        record.fields["text"] = "this is my updated text"
    
    dataset.records.log(records)
    

    Changelog v2.6.0

  5. v2.5.02024-11-29 · 2024-11-29 12:28 UTC
    查看更新说明

    🔆 Release highlights

    Webhooks

    You can now create and manage webhooks to support your workflows!

    Webhooks allow you to submit real-time information to other applications whenever a specific event occurs within Argilla. Here's an example of how you can set up a webhook in Argilla:

    
    import argilla as rg
    
    @rg.webhook_listener("record.completed")
    async def record_completed(record: rg.Record, **kwargs):
        print (f"Record {record.id} has been completed")
    

    Visit the Argilla documentation for more information.

    A redesigned home page

    Argilla's home page has been redesigned to provide a better user experience. The new home page now shows a new dataset card view, which provides a better overview of the datasets and annotation progress.

    Python 3.13 and Pydantic v2 support

    The Argilla server (and SDK) now supports Python 3.13 and Pydantic 2.0.0. This means that you can now install and use both SDK and server with Python 3.13 in the same Python environment!

    pip install argilla
    pip install argilla-server
    
    python -m argilla_server
    

    Other improvements

    • We've added a high contrast theme to help users with visual impairments. To change the theme go to "My settings" and choose your preferred theme. Thanks @paulbauriegel for this! 🎉
    • You can select the language that you'd like to display in the Argilla UI, also from the "My settings" page. Your language isn't there? Visit the Argilla documentation to learn how you can add yours.

    Changelog v2.5.0

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    [!IMPORTANT] The original authors have moved on to exciting new projects! The codebase is mature and stable, having served users reliably for years. While we won't be adding new features going forward, we're committed to solve bug fixes and publish patches as needed. If you're interested in helping maintain or extend this project, we'd love to hear from you! Please open an issue to discuss becoming a maintainer - we're looking for dedicated contributors who can take ownership of the project's future development.

    Argilla is a collaboration tool for AI engineers and domain experts who need to build high-quality datasets for their projects.

    If you just want to get started, deploy Argilla on Hugging Face Spaces. Curious, and want to know more? Read our documentation.

    Or, play with the Argilla UI by signing in with your Hugging Face account:

    Why use Argilla?

    Argilla can be used for collecting human feedback for a wide variety of AI projects like traditional NLP (text classification, NER, etc.), LLMs (RAG, preference tuning, etc.), or multimodal models (text to image, etc.). Argilla's programmatic approach lets you build workflows for continuous evaluation and model improvement. The goal of Argilla is to ensure your data work pays off by quickly iterating on the right data and models.

    Improve your AI output quality through data quality

    Compute is expensive and output quality is important. We help you focus on data, which tackles the root cause of both of these problems at once. Argilla helps you to achieve and keep high-quality standards for your data. This means you can improve the quality of your AI output.

    Take control of your data and models

    Most AI tools are black boxes. Argilla is different. We believe that you should be the owner of both your data and your models. That's why we provide you with all the tools your team needs to manage your data and models in a way that suits you best.

    Improve efficiency by quickly iterating on the right data and models

    Gathering data is a time-consuming process. Argilla helps by providing a tool that allows you to interact with your data in a more engaging way. This means you can quickly and easily label your data with filters, AI feedback suggestions and semantic search. So you can focus on training your models and monitoring their performance.

    🏘️ Community

    We are an open-source community-driven project and we love to hear from you. Here are some ways to get involved:

    • Community Meetup: listen in or present during one of our bi-weekly events.

    • Discord: get direct support from the community in #argilla-distilabel-general and #argilla-distilabel-help.

    • Roadmap: plans change but we love to discuss those with our community so feel encouraged to participate.

    What do people build with Argilla?

    Open-source datasets and models

    The community uses Argilla to create amazing open-source datasets and models.

    • Cleaned UltraFeedback dataset used to fine-tune the Notus and Notux models. The original UltraFeedback dataset was curated using Argilla UI filters to find and report a bug in the original data generation code. Based on this data curation process, Argilla built this new version of the UltraFeedback dataset and fine-tuned Notus, outperforming Zephyr on several benchmarks.
    • distilabel Intel Orca DPO dataset used to fine-tune the improved OpenHermes model. This dataset was built by combining human curation in Argilla with AI feedback from distilabel, leading to an improved version of the Intel Orca dataset and outperforming models fine-tuned on the original dataset.

    Examples Use cases

    AI teams from organizations such as the Red Cross, Loris.ai and Prolific use Argilla to improve the quality and efficiency of AI projects. They shared their experiences in our AI community meetup.

    • AI for good: the Red Cross presentation showcases how the Red Cross domain experts and AI team collaborated by classifying and redirecting requests from refugees of the Ukrainian crisis to streamline the support processes of the Red Cross.
    • Customer support: during the Loris meetup they showed how their AI team uses unsupervised and few-shot contrastive learning to help them quickly validate and gain labeled samples for a huge amount of multi-label classifiers.
    • Research studies: the showcase from Prolific announced their integration with our platform. They use it to actively distribute data collection projects among their annotating workforce. This allows Prolific to quickly and efficiently collect high-quality data for research studies.

    👨‍💻 Getting started

    Installation

    First things first! You can install the SDK with pip as follows:

    pip install argilla
    

    After that, you will need to deploy Argilla Server. The easiest way to do this is through our free Hugging Face Spaces deployment integration.

    To use the client, you need to import the Argilla class and instantiate it with the API URL and API key.

    import argilla as rg
    
    client = rg.Argilla(api_url="https://[your-owner-name]-[your_space_name].hf.space", api_key="owner.apikey")
    

    Create your first dataset

    We can now create a dataset with a simple text classification task. First, you need to define the dataset settings.

    settings = rg.Settings(
        guidelines="Classify the reviews as positive or negative.",
        fields=[
            rg.TextField(
                name="review",
                title="Text from the review",
                use_markdown=False,
            ),
        ],
        questions=[
            rg.LabelQuestion(
                name="my_label",
                title="In which category does this article fit?",
                labels=["positive", "negative"],
            )
        ],
    )
    dataset = rg.Dataset(
        name=f"my_first_dataset",
        settings=settings,
        client=client,
    )
    dataset.create()
    

    Next, we can add records to the dataset.

    pip install datasets
    
    from datasets import load_dataset
    
    data = load_dataset("imdb", split="train[:100]").to_list()
    dataset.records.log(records=data, mapping={"text": "review"})
    

    🎉 You have successfully created your first dataset with Argilla. You can now access it in the Argilla UI and start annotating the records. Need more info, check out our docs.

    🥇 Contributors

    To help our community with the creation of contributions, we have created our community docs.