freesolo
freesolo is the published Python SDK for Freesolo's recording OpenAI
drop-in client and the environment and dataset contracts used by generated
repositories.
The public SDK surface includes:
freesolo.OpenAIandfreesolo.AsyncOpenAIfreesolo.environmentsfreesolo.datasets
Install
pip install freesolo
From source:
cd freesolo-sdk
export PYTHONPATH="$PWD/pypi"
OpenAI Drop-in Client
Use OpenAI or AsyncOpenAI anywhere you would use the official Python
client. A Freesolo API key is required through FREESOLO_API_KEY or the client
options. Requests go through the Freesolo recording proxy and chat completions
are recorded by default.
from freesolo import AsyncOpenAI, OpenAI
client = OpenAI()
async_client = AsyncOpenAI()
completion = client.chat.completions.create(
model="openai/gpt-5.2",
messages=[{"role": "user", "content": "hello"}],
extra_body={"metadata": {"dataset": "support"}},
)
Set model to a deployed Freesolo model id to call that fine-tuned model with
the same API. Recording controls use the official extra_body escape hatch, so
the native OpenAI method signatures and return types remain unchanged.
completion = client.chat.completions.create(
model="adapter-123",
messages=[{"role": "user", "content": "hello"}],
extra_body={"store": False},
)
Dataset Contract
Dataset records use input and optional output.
{ "id": "example-1", "input": "Say yes.", "output": "yes" }
The SDK does not accept aliases such as prompt, query, task,
ground_truth, expected_output, or completion.
Environment Contract
Environments are Python modules that expose load_environment() and return an
EnvironmentSingleTurn or EnvironmentMultiTurn instance. Environment code
uses TaskExample.input and TaskExample.output when building prompts and
scoring responses.
Single-turn environments build their initial episode through start_episode().
The SDK prepends the supplied contract text as a system message when the
environment did not already provide one, so SFT rows and environment scoring see
the same policy prompt. Multi-turn environments own their start_episode()
implementation and should include any task-specific initial system message
there.
The SDK does not handle remote artifact publishing or resolution.
Example
from freesolo.datasets import load_dataset
from freesolo.environments import load_environment
dataset = load_dataset("support.jsonl")
environment = load_environment("freesolo/environment.py:load_environment")
print(len(dataset.examples))
print(type(environment).__name__)
API Guidance
Use freesolo.datasets for task examples and freesolo.environments for environment
loading/scoring interfaces.
- No command-line help surface is published as part of the SDK contract.
Metadata
Release files for freesolo 0.4.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| freesolo-0.4.2.tar.gz | 35.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| freesolo-0.4.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 82.6 kB
Release files / freesolo-0.4.2.tar.gz
| Download URL | freesolo-0.4.2.tar.gz |
|---|---|
| Size | 35.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ce4f1f31fb65d1fd017ed76e1f859ede0fcb0b99d8b243b56b20314b438cfe40
|
|
BLAKE2b-256 checksum How to use checksums |
9bf7acb72339f2c5553248c7ac7f191a7a9e3a82999ab4937c3a9d2b87547ca9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / freesolo-0.4.2-py3-none-any.whl
| Download URL | freesolo-0.4.2-py3-none-any.whl |
|---|---|
| Size | 47.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fb2b9209cedfbf9c4f51418e74c2b5775fce5f0505cd9ad36ae30e97a9b274ee
|
|
BLAKE2b-256 checksum How to use checksums |
e205164fcb1f8581e207d819273c3723db78d3f4c5e413fb24447c9b1e39783d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|