Argilla Dataset Manager
A Python-based tool for managing and uploading datasets to Argilla, specifically designed for handling various types of text datasets with advanced configuration options.
Features
- Easy dataset creation with predefined templates
- Flexible dataset configuration for different use cases
- Dataset migration and versioning
- Workspace management
- Robust error handling and logging
Installation
From PyPI (Recommended)
pip install argilla-dataset-manager
From Source
- Clone the repository:
git clone https://github.com/jordanrburger/argilla_dataset_manager.git
cd argilla-dataset-manager
- Install in development mode:
pip install -e .
Configuration
Create a .env file in your project directory with your Argilla credentials:
ARGILLA_API_URL=your_argilla_api_url
ARGILLA_API_KEY=your_api_key
Quick Start
1. Create a Text Classification Dataset
from argilla_dataset_manager import DatasetManager, get_argilla_client, SettingsManager
# Initialize
client = get_argilla_client()
dataset_manager = DatasetManager(client)
settings_manager = SettingsManager()
# Create settings for text classification
settings = settings_manager.create_text_classification(
labels=['positive', 'negative', 'neutral'],
guidelines="Sentiment analysis dataset",
include_metadata=True,
metadata_fields=['source', 'confidence']
)
# Create dataset
dataset = dataset_manager.create_dataset(
workspace="my_workspace",
dataset="sentiment_analysis",
settings=settings
)
# Add records
record = rg.Record(
fields={
"text": "This product is amazing!"
},
metadata={
"source": "reviews",
"confidence": 0.95
}
)
dataset.records.log([record])
2. Create a Q&A Dataset
# Create settings for Q&A dataset
settings = settings_manager.create_qa_dataset(
include_context=True,
include_keywords=True,
include_references=True,
guidelines="Customer support Q&A dataset"
)
# Create dataset
dataset = dataset_manager.create_dataset(
workspace="support_workspace",
dataset="customer_qa",
settings=settings
)
# Add a Q&A record
record = rg.Record(
fields={
"question": "How do I reset my password?",
"answer": "Click on 'Forgot Password' and follow the instructions.",
"context": "User authentication flow",
"keywords": "password,reset,auth",
"references": "docs/auth.md"
},
metadata={
"source": "support_tickets",
"date": "2023-12-01"
}
)
dataset.records.log([record])
3. Dataset Migration and Versioning
# Create new version of existing dataset with updated settings
new_version = dataset_manager.update_dataset_settings(
workspace="my_workspace",
dataset="customer_qa",
new_settings=updated_settings,
create_new_version=True
)
# Clone dataset to different workspace
cloned_dataset = dataset_manager.clone_dataset(
workspace="development",
dataset="customer_qa",
new_name="customer_qa_prod",
new_workspace="production"
)
Available Dataset Templates
The SettingsManager provides several predefined templates:
-
Text Classification
- Basic text classification with customizable labels
- Optional metadata fields
-
Q&A Datasets
- Question and answer fields
- Optional context, keywords, and references
- Configurable metadata
-
Text Generation
- Prompt and response fields
- Optional prompt templates
- Model-specific metadata
-
Text Summarization
- Text and summary fields
- Length and compression ratio tracking
- Source tracking
-
Custom Datasets
- Create datasets with custom fields
- Flexible metadata configuration
Development
Setup Development Environment
- Clone the repository:
git clone https://github.com/jordanrburger/argilla_dataset_manager.git
cd argilla-dataset-manager
- Create a virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install development dependencies:
pip install -e ".[dev]"
Running Tests
pytest tests/
Code Style
This project uses:
- Black for code formatting
- isort for import sorting
- mypy for type checking
To format code:
black .
isort .
mypy .
Project Structure
argilla_dataset_manager/
├── __init__.py # Package initialization
├── utils/
│ ├── argilla_client.py # Argilla API interaction
│ ├── dataset_manager.py # Dataset management
│ └── logger.py # Logging configuration
└── datasets/
└── settings_manager.py # Dataset settings and templates
Error Handling
The library includes comprehensive error handling:
- Connection validation
- Workspace existence checks
- Dataset creation validation
- Record format validation
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
MIT License - see the LICENSE file for details
Metadata
Release files for argilla-dataset-manager 0.1.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| argilla_dataset_manager-0.1.6.tar.gz | 20.8 kB | Without provenance | Details for argilla_dataset_manager-0.1.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| argilla_dataset_manager-0.1.6-py3-none-any.whl | Python 3 | none | any | Details for argilla_dataset_manager-0.1.6-py3-none-any.whl |
Total release size: 32.4 kB
Release files / argilla_dataset_manager-0.1.6.tar.gz
| Download URL | argilla_dataset_manager-0.1.6.tar.gz |
|---|---|
| Size | 20.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d9f0883cbaf6fef7281b9e7d31267505602e36da2582f614100fe6a3acdc180d
|
|
BLAKE2b-256 checksum How to use checksums |
83d09dc9bfbd5ea47b7a614c92ea8bdd47f609b0deb49ddf09918c424ab65ca3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.8.18
|
Release files / argilla_dataset_manager-0.1.6-py3-none-any.whl
| Download URL | argilla_dataset_manager-0.1.6-py3-none-any.whl |
|---|---|
| Size | 11.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9da8181531546414b890b19f0ca63c605fd05b0462608c98a83e640ded377726
|
|
BLAKE2b-256 checksum How to use checksums |
8ef69e7a73fba5f43b24d734ab5cbd7af23cb51a6e52b943daf89ac90d6fd4ea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.0.1 CPython/3.8.18
|
Security for argilla-dataset-manager 0.1.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.