Skip to main content

OpenAI-compatible

@dsh-ai-providers/openai implements the OpenAI API shape for OpenAI and compatible servers. A compatible server may expose only some of the endpoints below. The package is maintained by Firefox2100 as part of this project and is not an official DSH or OpenAI package.

Capabilities​

CapabilityEndpoint
Language modelsPOST /chat/completions, GET /models for discovery
EmbeddingsPOST /embeddings
Text-to-speechPOST /audio/speech, optional GET /audio/voices
File transcriptionPOST /audio/transcriptions
Live transcription/realtime?intent=transcription WebSocket
Image generationPOST /images/generations and /images/edits
DecisionsPOST /decisions

OpenAI Decisions is currently a public-beta API, and gpt-6-luna is its only supported model. OpenAI-compatible servers do not necessarily implement this endpoint.

Connections​

Create one or more reusable connections in Settings > Providers > OpenAI-compatible connections. Each has an ID, name, base URL, and DSH credential reference. The default connection targets https://api.openai.com/v1 and refers to OPENAI_API_KEY.

An OpenAI-compatible connection configured in DSH settings

A connection can be shared by all capabilities, or each capability can select a different connection. This is useful when language models, speech, and images are hosted by different compatible servers.

Base URLs must include the API prefix expected before the endpoint paths. For example, use http://localhost:8080/v1 for a server whose embeddings endpoint is /v1/embeddings.

Capability defaults​

SettingDefault
Embedding modeltext-embedding-3-small
TTS model / voice / format / speedgpt-4o-mini-tts / alloy / mp3 / 1
File STT modelwhisper-1
Realtime STT modelgpt-4o-mini-transcribe
Image model / size / quality / formatgpt-image-1 / 1024x1024 / auto / png
Decision modelgpt-6-luna
Request timeout60 seconds
Embedding batch size64 texts
LLM idle timeout5 minutes

Compatible servers frequently use different model and voice IDs. Replace defaults with the server's exact identifiers. A missing voice-list endpoint is valid; enter the voice ID manually.

Language-model routes​

Language models are configured as named routes. A route selects a connection and lists models, sampling defaults, reasoning behavior, extra headers, and compatibility options. Multiple routes may use the same connection, and all configured routes are active simultaneously.

Selection​

After configuring the provider, select OpenAI-compatible in each capability tab you want it to serve. Language-model routes are registered directly and need no capability selection.

See the individual service pages for request options and result contracts.