usfbios
v1.0.2
Published
Official TypeScript SDK for the USF BIOS fine-tuning platform API
Maintainers
Readme
usfbios
Official TypeScript/Node.js SDK for the USF BIOS fine-tuning platform API.
Installation
npm install usfbiosQuick Start
import { USFBios } from 'usfbios';
const client = new USFBios({
apiKey: 'sk_live_...',
});
// Search for models
const models = await client.models.search({ query: 'llama', type: 'llm' });
console.log(`Found ${models.total} models`);
// Create a training job
const job = await client.training.create({
model: 'meta-llama/Llama-3.1-8B-Instruct',
datasetId: 'ds_abc123',
method: 'sft',
adapter: 'lora',
epochs: 3,
learningRate: 2e-4,
loraRank: 16,
gpuType: 'A100_80GB',
});
console.log(`Job ${job.id} created`);Authentication
API Key (recommended)
const client = new USFBios({
apiKey: 'sk_live_...',
});JWT Access Token
const client = new USFBios({
accessToken: 'eyJhbG...',
orgId: 'org_abc123',
});Resources
Models
// Search models
const results = await client.models.search({ query: 'llama', limit: 10 });
// Get model config
const config = await client.models.getConfig('meta-llama/Llama-3.1-8B');
// Check adapter compatibility
const compat = await client.models.getAdapterCompatibility({
modelType: 'llama',
trainingMethod: 'sft',
});Datasets
// List datasets
const datasets = await client.datasets.list();
// Upload a dataset
const uploaded = await client.datasets.upload({
filePath: './data.jsonl',
name: 'My Dataset',
});
// Preview rows
const preview = await client.datasets.preview('ds_abc123', { pageSize: 5 });
// Import from HuggingFace
const imported = await client.datasets.importFromHuggingFace({
repoId: 'databricks/dolly-15k',
integrationId: 'int_abc123',
name: 'Dolly 15k',
});
// Validate before upload
const validation = await client.datasets.validate('./data.jsonl');Training
// Create a job
const job = await client.training.create({
model: 'meta-llama/Llama-3.1-8B-Instruct',
datasetId: 'ds_abc123',
method: 'sft',
adapter: 'lora',
});
// List jobs
const jobs = await client.training.list({ status: 'running' });
// Get metrics
const metrics = await client.training.getMetrics('job_abc123');
// Get checkpoints
const checkpoints = await client.training.getCheckpoints('job_abc123');
// Stop / Resume
await client.training.stop('job_abc123');
await client.training.resume('job_abc123');Wallet
// Get balance
const balance = await client.wallet.getBalance();
console.log(`$${(balance.balance_cents / 100).toFixed(2)}`);
// Transaction history
const txns = await client.wallet.getTransactions({ limit: 20 });GPU
// Get pricing
const pricing = await client.gpu.getPricing();
// Get recommendation for a model
const rec = await client.gpu.getRecommended('meta-llama/Llama-3.1-8B');Key Introspection
const info = await client.introspect();
console.log(`Org: ${info.org.name}`);
console.log(`Scopes: ${info.scopes.join(', ')}`);Error Handling
import { USFBios, ApiError } from 'usfbios';
try {
await client.training.get('bad_id');
} catch (err) {
if (err instanceof ApiError) {
console.log(`Status: ${err.status}`);
console.log(`Message: ${err.message}`);
console.log(`Code: ${err.code}`);
}
}Configuration
| Option | Default | Description |
|--------|---------|-------------|
| apiKey | — | API key (sk_live_...) |
| accessToken | — | JWT access token |
| orgId | — | Organization ID (auto-resolved with API keys) |
| workspaceId | — | Workspace ID (auto-resolved with API keys) |
| baseUrl | https://api-bios.us.inc | API base URL |
| timeout | 30000 | Request timeout in ms |
Requirements
- Node.js >= 18.0.0
- ESM modules
License
MIT
