사용 방법
- 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
- 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
- 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/svngoku/coding-agents-skills --skill adaption-ai시작 전 확인
- 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
- 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.
Adaption AI SDK Skill
Build dataset augmentation pipelines with Adaption's Adaptive Data platform. This skill covers the full lifecycle: ingest → adapt → wait → evaluate → export.
Quick Reference
pip install adaptionfrom adaption import Adaption
client = Adaption(api_key="pt_live_...") # or set ADAPTION_API_KEY env varAsync client: from adaption import AsyncAdaption
Core Lifecycle
- Ingest — Upload local file, import from HuggingFace, or import from Kaggle
- Adapt — Start an augmentation run with column mapping + optional controls
- Wait — Poll for completion with exponential backoff
- Evaluate — Fetch quality metrics (score_before/after, improvement %)
- Export — Download augmented dataset via presigned URL
Ingest Methods
Local file upload
Supported formats: .csv, .json, .jsonl, .parquet
result = client.datasets.upload_file("training_data.csv")
result = client.datasets.upload_file("data.csv", name="my-dataset") # custom name
dataset_id = result.dataset_idHugging Face import (async on server — poll before running)
resp = client.datasets.create_from_huggingface(
url="https://huggingface.co/datasets/org/repo",
files=["train.csv"],
)Kaggle import (requires Kaggle API creds registered in Adaption settings)
resp = client.datasets.create_from_kaggle(
url="https://www.kaggle.com/datasets/org/dataset-name",
files=["data.csv"],
)Running Adaptation Jobs
datasets.run() — the central method
Required: dataset_id, column_mapping with at least "prompt" key.
run = client.datasets.run(
dataset_id,
column_mapping={
"prompt": "instruction", # required
"completion": "response", # optional
# "chat": "conversation", # optional — alternative to prompt+completion
# "context": ["source", "ref"],# optional — list of context columns
},
# --- Optional controls (see references/ for details) ---
brand_controls={...},
recipe_specification={...},
job_specification={...},
estimate=True, # dry-run: get cost quote without starting
)Response fields: run.run_id, run.estimated_credits_consumed, run.estimated_minutes
Brand Controls (brand_controls)
| Key | Type | Purpose |
|---|---|---|
hallucination_mitigation | bool | Web-search grounding to reduce fabricated content |
length | "minimal"│"concise"│"detailed"│"extensive" | Target verbosity |
safety_categories | list[str] | Content categories to enforce (e.g. ["harassment","hate"]) |
Recipe Specification (recipe_specification)
recipe_specification={
"recipes": {
"reasoning_traces": True, # chain-of-thought in completions
"deduplication": True, # remove near-duplicates
"preference_pairs": True, # DPO chosen/rejected pairs
"prompt_rephrase": True, # rephrase prompts for variety
"prompt_metadata_injection": True, # inject context into prompts
},
"version": "...", # optional schema version
}Job Specification (job_specification)
job_specification={
"max_rows": 500, # subsample for pilots
"idempotency_key": "...", # safe retries
}Wait, Evaluate, Export
from adaption import DatasetTimeout
# Wait (exponential backoff 2s→30s, default timeout 1hr)
try:
status = client.datasets.wait_for_completion(dataset_id, timeout=600)
except DatasetTimeout as e:
print(f"Still running after {e.timeout}s")
# Evaluate quality
ev = client.datasets.get_evaluation(dataset_id)
# ev.status: pending | running | succeeded | failed | skipped
# ev.quality.score_before, ev.quality.score_after, ev.quality.improvement_percent
# Download
url = client.datasets.download(dataset_id) # presigned S3 URLWhen to read more
| Need | Read |
|---|---|
| Full run parameters, all API endpoints, HTTP/curl examples | references/api-reference.md |
| Hallucination mitigation, safety, length, reasoning traces guides | references/guides.md |
| End-to-end scripts (upload→adapt→evaluate→download) | scripts/e2e_pipeline.py |
| Async patterns | scripts/async_pipeline.py |
Key Patterns
- Always estimate first on large datasets:
estimate=Truebefore real run - Poll after HF/Kaggle import: ingestion is async; wait for
row_count is not None - Evaluation lags adaptation: run may show
succeededbefore eval finishes — pollget_evaluationseparately - Combine controls freely:
brand_controls+recipe_specification+job_specificationall compose on onedatasets.run()call
Anti-Patterns to Avoid
- Running a real job without estimating first — on large datasets, always call with
estimate=Trueand checkestimated_credits_consumedbefore spending budget - Reading results right after HF/Kaggle import — ingestion is async; wait until
row_count is not Nonebefore running a job, or you'll process an empty dataset - Treating run completion as evaluation completion — the run can show
succeededwhile the evaluation is stillrunning; pollget_evaluationseparately - Retrying without an `idempotency_key` — naive retries on network errors create duplicate jobs; set
job_specification.idempotency_key - Missing the `prompt` key in `column_mapping` — it is required; jobs fail with confusing errors when the mapping is incomplete
When to Use / Not Use
Use this skill when:
- Generating synthetic training data or augmenting existing datasets for fine-tuning
- Building DPO preference pairs, reasoning traces, or grounded (hallucination-mitigated) training data
- Working with the Adaption Python SDK (
pip install adaption) or the adaptionlabs.ai API
Do NOT use this skill when:
- The data only needs simple cleaning/formatting — a local pipeline is cheaper
- The work must stay fully on-premises with no external platform dependency
- You are not using Adaption's platform — use the generic dataset pipelines of the framework you're already on



