Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.getbifrost.ai/llms.txt

Use this file to discover all available pages before exploring further.

Overview

Mistral is an OpenAI-compatible provider with custom compatibility handling for specific features. Bifrost converts requests to Mistral’s expected format while supporting their unique API endpoints. Key characteristics:
  • OpenAI-compatible format - Chat and streaming endpoints
  • Transcription API - Native audio transcription support
  • OCR API - Native document and image OCR support
  • Tool calling support - Function definitions with string-based tool choice
  • Streaming support - Server-Sent Events for chat and transcription
  • Parameter compatibility - max_completion_tokens → max_tokens conversion

Supported Operations

OperationNon-StreamingStreamingEndpoint
Chat Completions/v1/chat/completions
Responses API/v1/chat/completions
Transcriptions (STT)/v1/audio/transcriptions
OCR-/v1/ocr
Embeddings-/v1/embeddings
List Models-/v1/models
Image Generation-
Text Completions-
Speech (TTS)-
Files-
Batch-
Unsupported Operations (❌): Text Completions, Speech (TTS), Files, and Batch are not supported by the upstream Mistral API. Image Generation is not currently supported by Bifrost’s Mistral integration (Mistral API supports image generation, but Bifrost has not yet implemented this feature). These return UnsupportedOperationError.

1. Chat Completions

Request Parameters

Mistral supports most OpenAI chat completion parameters with some conversions. For standard OpenAI parameter reference, see OpenAI Chat Completions.

Parameter Mapping & Conversions

ParameterOpenAIMistralNotes
max_completion_tokensmax_tokensConversion required
temperatureDirect pass-through
top_pDirect pass-through
stopStop sequences
toolsFunction definitions
tool_choiceString onlyString onlyLimitations apply
userMax 64 characters
frequency_penalty, presence_penaltyDirect pass-through

Critical Conversions

max_completion_tokens → max_tokens:
// Bifrost request
{"max_completion_tokens": 4096}

// Mistral API
{"max_tokens": 4096}
Tool Choice Simplification: Mistral only supports simple string tool choice, not structured constraints:
// OpenAI supports specific tool forcing
{"tool_choice": {"type": "function", "function": {"name": "specific_tool"}}}

// Mistral only supports
{"tool_choice": "any"}  // or "none", "auto"

Filtered Parameters

Removed for Mistral compatibility:
  • prompt_cache_key - Not supported
  • cache_control - Stripped from content blocks
  • verbosity - Anthropic-specific
  • store - Not supported
  • service_tier - Not supported

Message Conversion

Full OpenAI message support:
  • All roles: user, assistant, system, tool, developer
  • Content types: text, images, audio, files

Tool Conversion

Tool definitions supported with constraints:
AspectSupportNotes
Function definitionsFull parameter schema support
Tool choice “auto”Default mode
Tool choice “any”Requires any tool
Tool choice “none”No tools
Specific tool forcingNot supported - simplified to “any”
Parallel toolsMultiple tools in one turn
Limitation Caveat:
// Bifrost allows specifying a specific tool
{
  "tool_choice": {
    "type": "function",
    "function": {"name": "get_weather"}  // ❌ Not supported
  }
}

// Mistral compatibility - converted to generic "any"
{
  "tool_choice": "any"
}

Response Conversion

Standard OpenAI-compatible response:
  • choices[].message.content - Response text
  • choices[].message.tool_calls - Function calls
  • usage - Token counts (prompt_tokens, completion_tokens)
  • finish_reason - stop, tool_calls, length

2. Responses API

Converted internally to Chat Completions with format transformation:
ResponsesRequest → ChatRequest → ChatCompletion → ResponsesResponse
Same parameter support and tool handling as Chat Completions.

3. Transcription

Mistral provides native audio transcription with streaming support.

Request Parameters

Parameter Mapping

ParameterBifrostMistralNotes
fileBinary audioMultipart formConverted to multipart
modelModel namemodel
languageISO-639-1languageOptional language hint
promptOptionalpromptContext for recognition
response_formatFormat typeresponse_formatjson, text, etc.
temperaturefloattemperatureSampling temperature
timestamp_granularitiesArrayArray fieldSegment/word timestamps

Multipart Form Structure

Transcription requests are sent as multipart/form-data:
--boundary
Content-Disposition: form-data; name="file"; filename="audio.mp3"
[binary audio data]
--boundary
Content-Disposition: form-data; name="model"
voxtral-mini-latest
--boundary
Content-Disposition: form-data; name="language"
en
--boundary--

Transcription Response

{
  "text": "transcribed text",
  "language": "en",
  "duration": 3.5,
  "segments": [
    {
      "id": 0,
      "start": 0.0,
      "end": 1.5,
      "text": "transcribed segment",
      "temperature": 0.0,
      "avg_logprob": -0.45,
      "compression_ratio": 1.2,
      "no_speech_prob": 0.001
    }
  ],
  "words": [
    {
      "word": "transcribed",
      "start": 0.0,
      "end": 0.8
    }
  ]
}

Transcription Streaming

Mistral supports SSE streaming for transcription with custom event types:
Event TypeContentNotes
transcription.languageLanguage codeLanguage detected
transcription.text.deltaText deltaIncremental text
transcription.segmentFull segmentComplete segment data
transcription.doneFinal usageCompletion with tokens

4. Embeddings

Mistral supports text embeddings:
ParameterNotes
inputText or array of texts
modelEmbedding model name
dimensionsCustom output dimensions (optional)
encoding_format”float” or “base64”
Response returns embedding vectors with token usage.

5. OCR

Mistral provides native OCR support for extracting text and content from documents and images via the mistral-ocr-latest model.

Request Parameters

ParameterNotes
modelOCR model name (e.g., mistral/mistral-ocr-latest)
documentDocument input - see document types below
include_image_base64Return extracted images as base64
pagesSpecific page indices to process (0-based)
image_limitMax images to extract per page
image_min_sizeMinimum image size in pixels to extract
table_formatFormat for extracted tables (e.g., "markdown", "html")
extract_headerExtract page headers
extract_footerExtract page footers
confidence_scores_granularityConfidence detail level: page, block, word, or document
bbox_annotation_formatFormat for bounding box annotations
document_annotation_formatFormat for document-level annotations
document_annotation_promptCustom prompt for document annotation

Document Types

typeRequired fieldUse case
document_urldocument_urlPDF URL or base64 data URL
image_urlimage_urlImage URL

6. List Models

Lists available Mistral models with context length and capabilities.

Unsupported Features

FeatureReason
Text CompletionsNot offered by Mistral API
Image GenerationNot yet implemented in Bifrost integration (Mistral API supports this)
Speech/TTSNot offered by Mistral API
File ManagementNot offered by Mistral API
Batch OperationsNot offered by Mistral API

Caveats

Severity: Medium Behavior: Cache control directives removed from messages Impact: Prompt caching features unavailable Code: Stripped during JSON marshaling
Severity: Low Behavior: OpenAI-specific parameters filtered Impact: prompt_cache_key, verbosity, store removed Code: filterOpenAISpecificParameters
Severity: Low Behavior: User field > 64 characters silently dropped Impact: Longer user identifiers are lost Code: SanitizeUserField enforces 64-char max