pip 只装客户端,还需另行部署 Argilla Server(如 Hugging Face Spaces)才能连接使用;实例化客户端需提供 api_url 和 api_key;示例中加载 imdb 数据集需额外安装 datasets 包。
argilla
argilla-ioApache-2.0活跃维护面向 AI 工程师和领域专家的数据标注协作平台,支持主动学习和人机协同,帮助团队高效构建高质量训练数据集。
Argilla is a collaboration tool for AI engineers and domain experts to build high-quality datasets
pip install argilla
pip install datasetsREADME 未说明硬件要求;服务端推荐部署在 Hugging Face Spaces,客户端仅需 pip 安装 SDK。
让 AI 工程师和领域专家协作标注、管理数据,构建高质量训练数据集
面向 AI 工程师和领域专家的数据标注协作平台,支持主动学习和人机协同,帮助团队高效构建高质量训练数据集。
核心能力
- 用 Python SDK 以编程方式定义数据集字段与标注问题
- 支持文本分类、NER、LLM 偏好、多模态等多种标注任务
- 通过 UI 过滤器、AI 反馈建议和语义搜索加速标注
- 记录日志时可用 mapping 把外部数据字段映射到数据集
- 可一键部署到 Hugging Face Spaces 作为服务端
容易踩的坑
- 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:
- Add keycloak SSO by @paulbauriegel in https://github.com/argilla-io/argilla/pull/5711
- [BUGFIXES] Fixing error when using PostgreSQL by @frascuchon in https://github.com/argilla-io/argilla/pull/5795
- [BUGFIX] Redirect slash when defining
ARGILLA_BASE_URLby @frascuchon in https://github.com/argilla-io/argilla/pull/5796 - [BUGFIX] get dataset settings when using
client.datasets.list()by @frascuchon in https://github.com/argilla-io/argilla/pull/5810 - [FEAT][HELM] set ES SSL verification by @omarmoo5 in https://github.com/argilla-io/argilla/pull/5807
- feat: Add Japanese translation by @Tomoya-Matsubara in https://github.com/argilla-io/argilla/pull/5816
New Contributors
- @omarmoo5 made their first contribution in https://github.com/argilla-io/argilla/pull/5807
- @patrickfleith made their first contribution in https://github.com/argilla-io/argilla/pull/5806
- @Tomoya-Matsubara made their first contribution in https://github.com/argilla-io/argilla/pull/5816
Full Changelog: https://github.com/argilla-io/argilla/compare/v2.7.1...v2.8.0
- v2.7.12025-02-06 · 2025-02-06 14:33 UTC
查看更新说明
What's Changed
- [BUGFIX] Prevent sending auth headers for public requests by @frascuchon in https://github.com/argilla-io/argilla/pull/5804
Full Changelog: https://github.com/argilla-io/argilla/compare/v2.7.0...v2.7.1
- 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
- @hamelsmu made their first contribution in https://github.com/argilla-io/argilla/pull/5784
- @louisbrulenaudet made their first contribution in https://github.com/argilla-io/argilla/pull/5766
- @Saikiranbonu1661 made their first contribution in https://github.com/argilla-io/argilla/pull/5778
Full Changelog: https://github.com/argilla-io/argilla/compare/v2.6.0...v2.7.0
- 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
- [ENHANCEMENT]
argilla server: Return users on dataset progress by @frascuchon in https://github.com/argilla-io/argilla/pull/5701 - [CI] Update base docker image by @frascuchon in https://github.com/argilla-io/argilla/pull/5705
- 🔥 Fix highlight on bulk by @damianpumar in https://github.com/argilla-io/argilla/pull/5698
- 🔥 Improve plugins loaders by @damianpumar in https://github.com/argilla-io/argilla/pull/5697
- fix: :bug: Send visible_options prop only when the questions has more… by @damianpumar in https://github.com/argilla-io/argilla/pull/5716
- [FEATURE] UI - update dataset list by @leiyre in https://github.com/argilla-io/argilla/pull/5684
- [Docs] configure issue form by @sdiazlor in https://github.com/argilla-io/argilla/pull/5703
- Assign field to a span question by @leiyre in https://github.com/argilla-io/argilla/pull/5717
- [FEATURE]: Adding Functionality To Update Users by @sean-hickey-wf in https://github.com/argilla-io/argilla/pull/5615
- [CI] Fix argilla-frontend build by adding the
package-lock.jsonfile by @frascuchon in https://github.com/argilla-io/argilla/pull/5731 - fix: UI - use
last_activity_atin the dataset list by @leiyre in https://github.com/argilla-io/argilla/pull/5741 - [CI] fix install deps using python.3.13 by @frascuchon in https://github.com/argilla-io/argilla/pull/5745
- [BUGFIX] prevent errors when updating user by @frascuchon in https://github.com/argilla-io/argilla/pull/5742
- [BUGFIX]
argilla: prevent enum literal validation errors by @frascuchon in https://github.com/argilla-io/argilla/pull/5679 - 🎉 Improve styles file weight by @leiyre in https://github.com/argilla-io/argilla/pull/5724
- [FEATURE] Add support to update record fields by @frascuchon in https://github.com/argilla-io/argilla/pull/5685
- 🚑 feat/check version by @damianpumar in https://github.com/argilla-io/argilla/pull/5738
- [BUGFIX] [TESTS] Remove custom isoformat parsing and let pydantic do the work by @frascuchon in https://github.com/argilla-io/argilla/pull/5752
- [BUGFIX] Fetch dataset setting when iterate
client.datasetsby @frascuchon in https://github.com/argilla-io/argilla/pull/5753 - [BUGFIX]
argilla: review datasest import with new export flow by @frascuchon in https://githu
- [ENHANCEMENT]
- 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_serverOther 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
- [BUGFIX] argilla server: Prevent update
dataset.updated_atwhen updatingdataset.last_activity_atcolumn by @frascuchon in https://github.com/argilla-io/argilla/pull/5656 - Docs: Typo Fix by @RahulK4102 in https://github.com/argilla-io/argilla/pull/5642
- [Docs] : fix typos in docs by @FarukhS52 in https://github.com/argilla-io/argilla/pull/5612
- [CONFIG]
argilla server: Review and update dependencies by @frascuchon in https://github.com/argilla-io/argilla/pull/5649 - Improve German translation and some aria attributes by @paulbauriegel in https://github.com/argilla-io/argilla/pull/5658
- Add a high-contrast theme & improvements for the forced-colors mode by @paulbauriegel in https://github.com/argilla-io/argilla/pull/5661
- [BUGFIX]: argilla server: install default
psycopg2driver used by alembic by @frascuchon in https://github.com/argilla-io/argilla/pull/5672 - (Typo): Update README.md by @kaleaditya779 in https://github.com/argilla-io/argilla/pull/5655
- [CONFIG]
argilla: Add Python 3.13 support by @frascuchon in https://github.com/argilla-io/argilla/pull/5652 - [ENHANCEMENT][REFACTOR] SDK: allow to remove settings by @frascuchon in https://github.com/argilla-io/argilla/pull/5584
- fix: improve logic for detecting ChatFields by @leiyre in https://github.com/argilla-io/argilla/pull/5667
- [BUGFIX]
argilla frontend: Avoid call router.push when opening an external URL by @frascuchon in https://github.com/argilla-io/argilla/pull/5675 - [BUGFIX] visualisation of highlighted text by @leiyre in https://github.com/argilla-io/argilla/pull/5678
- Dataset Creation UI fixes & Improvements by @leiyre in https://github.com/argilla-io/argilla/pull/5670
- [BUGFIX] Show
Import dataif user is admin or owner by @leiyre in https://github.com/argilla-io/argilla/pull/5688 - docs: Add missing server configuration env vars by @frascuchon in https://github.com/argilla-io/argilla/pull/5676
- [REFACTOR]
argilla server: Remove passlib dependency by @frascuchon in https://github.com/argilla-io/argilla/pull/5674 - [FEATURE] UI - Add language selection in user settings by @leiyre in https://github.com/argilla-io
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
[!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.