Skip to content

Media (Images, Speech, Transcription)

Generate images from text prompts:

import asyncio
import os
from liter_llm import create_client
from liter_llm._internal_bindings import CreateImageRequest
async def main() -> None:
client = create_client(api_key=os.environ["OPENAI_API_KEY"])
request = CreateImageRequest.from_json(
'{"model":"openai/dall-e-3","prompt":"A sunset over mountains","n":1,"size":"1024x1024"}'
)
response = await client.image_generate(request)
print(response.data[0].url)
asyncio.run(main())
Parameter Type Description
model string Image model (e.g. "openai/dall-e-3")
prompt string Text description of the image
n int Number of images to generate
size string Image size ("1024x1024", "1792x1024", "1024x1792")
quality string Quality level ("standard" or "hd")
style string Style ("vivid" or "natural")

Generate audio from text:

import asyncio
import os
from pathlib import Path
from liter_llm import create_client
from liter_llm._internal_bindings import CreateSpeechRequest
async def main() -> None:
client = create_client(api_key=os.environ["OPENAI_API_KEY"])
request = CreateSpeechRequest.from_json(
'{"model":"openai/tts-1","input":"Hello, world!","voice":"alloy"}'
)
audio_bytes = await client.speech(request)
Path("output.mp3").write_bytes(audio_bytes)
print(f"Wrote {len(audio_bytes)} bytes to output.mp3")
asyncio.run(main())
Parameter Type Description
model string TTS model (e.g. "openai/tts-1")
input string Text to synthesize
voice string Voice preset ("alloy", "echo", "fable", "onyx", "nova", "shimmer")
response_format string Audio format ("mp3", "opus", "aac", "flac")
speed float Playback speed (0.25-4.0)

Transcribe audio to text:

import asyncio
import base64
import json
import os
from pathlib import Path
from liter_llm import create_client
from liter_llm._internal_bindings import CreateTranscriptionRequest
async def main() -> None:
client = create_client(api_key=os.environ["OPENAI_API_KEY"])
encoded = base64.b64encode(Path("audio.mp3").read_bytes()).decode("ascii")
request = CreateTranscriptionRequest.from_json(
json.dumps({"model": "openai/whisper-1", "file": encoded})
)
response = await client.transcribe(request)
print(response.text)
asyncio.run(main())
Parameter Type Description
model string STT model (e.g. "openai/whisper-1")
file bytes Audio file data
language string ISO-639-1 language code
prompt string Optional context hint
temperature float Sampling temperature
response_format string Output format ("json", "text", "srt", "vtt")

Classify content for policy violations:

import asyncio
import os
from liter_llm import create_client
from liter_llm._internal_bindings import ModerationRequest
CATEGORIES = (
"sexual", "hate", "harassment", "self_harm", "sexual_minors",
"hate_threatening", "violence_graphic", "self_harm_intent",
"self_harm_instructions", "harassment_threatening", "violence",
)
async def main() -> None:
client = create_client(api_key=os.environ["OPENAI_API_KEY"])
request = ModerationRequest.from_json(
'{"model":"openai/omni-moderation-latest","input":"This is a test message."}'
)
response = await client.moderate(request)
result = response.results[0]
print(f"Flagged: {result.flagged}")
for name in CATEGORIES:
if getattr(result.categories, name):
score = getattr(result.category_scores, name)
print(f" {name}: {score:.4f}")
asyncio.run(main())
Parameter Type Description
input string/array Content to classify
model string Moderation model (e.g. "openai/omni-moderation-latest")