A Python SDK for interacting with the Impulse Labs API
Project description
Impulse SDK for Python
The Impulse SDK for Python provides a convenient way to interact with the Impulse API for managing large language model (LLM) fine-tuning processes and related resources.
Features
- User management
- API key management
- Dataset operations
- Fine-tuning job management
- Model information retrieval
- Usage tracking
Installation
You can install the Impulse SDK using pip:
pip install impulse-api-sdk-python
Setting up API Key
Generate an API key by visiting the Impulse Dashboard at this settings page.
Setting environment variable
export IMPSDK_API_KEY=xxxxx
Usage – Python Client
User Management
import os
import asyncio
from impulse.api_sdk.sdk import ImpulseSDK
async def main():
async with ImpulseSDK(os.environ.get("IMPSDK_API_KEY")) as client:
user = await client.user.get_current_user()
print(user)
asyncio.run(main())
Datasets
The files API is used for fine-tuning and allows developers to upload data to fine-tune on. It also has several methods to list all files, retrive files, and delete files. Please refer to our fine-tuning docs here.
import asyncio
import os
from impulse.api_sdk.sdk import ImpulseSDK
async def main():
async with ImpulseSDK(os.environ.get("IMPSDK_API_KEY")) as client:
files = await client.dataset.list_datasets()
await client.dataset.upload_dataset("somefile.jsonl")
await client.dataset.get_dataset("somefile.jsonl")
await client.dataset.delete("somefile.jsonl")
print(files)
asyncio.run(main())
Models
This lists all the models that Impulse supports.
import os
import asyncio
from impulse.api_sdk.sdk import ImpulseSDK
async def main():
async with ImpulseSDK(os.environ.get("IMPSDK_API_KEY")) as client:
models = await client.model.list_base_models()
print(models)
asyncio.run(main())
Fine-tunes
The finetune API is used for fine-tuning and allows developers to create finetuning jobs. It also has several methods to list all jobs, retrive statuses and get checkpoints. Please refer to our fine-tuning docs here.
import os
import asyncio
from impulse.api_sdk.sdk import ImpulseSDK
from impulse.api_sdk.models import FineTuningJobCreate, FineTuningJobParameters
async def main():
async with ImpulseSDK(os.environ.get("IMPSDK_API_KEY")) as client:
files = await client.dataset.list_datasets()
job = await client.fine_tuning.create_fine_tuning_job(FineTuningJobCreate(
base_model_name="llm_llama3_1_8b",
dataset_name=files[0].name,
name="test-fine-tuning-job",
parameters=FineTuningJobParameters(
batch_size=2,
shuffle=True,
num_epochs=1,
use_lora=True,
use_qlora=False
)
))
print(job)
jobs = await client.fine_tuning.list_fine_tuning_jobs()
print(jobs)
job_details = await client.fine_tuning.get_fine_tuning_job(job.name)
print(job_details)
asyncio.run(main())
Usage Tracking
import os
import asyncio
from impulse.api_sdk.sdk import ImpulseSDK
from datetime import timedelta, date
async def main():
async with ImpulseSDK(os.environ.get("IMPSDK_API_KEY")) as client:
end_date = date.today()
start_date = end_date - timedelta(days=30)
total_cost = await client.usage.get_total_cost(start_date, end_date)
print(total_cost)
usage_records = await client.usage.list_usage_records(start_date, end_date)
print(usage_records)
asyncio.run(main())
Support
If you encounter any problems or have any questions, please open an issue on the GitHub repository.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file impulse_api_sdk_python-0.11.1.tar.gz.
File metadata
- Download URL: impulse_api_sdk_python-0.11.1.tar.gz
- Upload date:
- Size: 18.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
695b344905101a9b7a39aca1a19d02036eae744da67796d8e85ad3eaa9345f1d
|
|
| MD5 |
f2446dbbf51c44c2cbc0be09e40f9098
|
|
| BLAKE2b-256 |
225967443752c5f12410b1ab2ad14eac5fdcbf5477dd2e1b45dd8ab6ab477532
|
File details
Details for the file impulse_api_sdk_python-0.11.1-py3-none-any.whl.
File metadata
- Download URL: impulse_api_sdk_python-0.11.1-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ff8161e9a13b35d4d1e3b948dd45bcc3fec8c9b0001fb84d749c72a341181fc
|
|
| MD5 |
7e562869e3078e32eeb72888dafd44a5
|
|
| BLAKE2b-256 |
9b7277b4775960a3fe122b8eb7460cbc08b424ab8428f27d4e5773a2bf7b7334
|