AIX dispatch server - API features comparison

This is updated as of 2024-07-09, and includes the latest features and capabilities of the three major AI APIs: Anthropic, Gemini, and OpenAI. The comparison covers a wide range of features, including function calling, vision, system instructions, etc.

Feature CategorySpecific FeatureAnthropicGeminiOpenAI
Message Structure
Role typesuser, assistantuser, modeluser, assistant, system, tool
Named participantsNoNoYes
Content arrayYesYesYes
Content Types and Multimodal Support
Text generationYesYesYes
Image understandingYesYesYes
Audio processingNoYesNo
Video processingNoYesNo
Image Handling
Supported formatsJPEG, PNG, GIF, WebPJPEG, PNG, WebP, HEIC, HEIFPNG, JPEG, WebP, non-animated GIF
Max image size5MB per image(20MB per prompt)20MB per image
Image detail levelN/AN/ALow, high, auto
Image resolutionmax: 1568x1568min: 768x768, max: 3072x3072min: 512x512, max: 2048 x 2048
Token calculation for images(width * height)/750; max 1,600258 tokens85 + 170 * {patches}
Image retentionDeleted after processingNot specifiedDeleted after processing
Audio and Video Handling
Audio formatsN/AWAV, MP3, AIFF, AAC, OGG, FLACN/A
Video formatsN/AMP4, MPEG, MOV, AVI, MPG, WebM, WMV, 3GPPN/A
System Instructions and Tool Use
System instructionsYes (array of text blocks)Yes (parts array)Yes (as system message)
Function/Tool Handling
Parallel tool callsNoNoYes
Tool DeclarationDefined in tools arrayDefined in tools arrayDefined in tools array
FC name restrictionsYesYes (max 63 chars)Yes (max 64 chars)
FC declarationname, description, input_schemaname, description, parametersname, description, parameters
FC options structureJSON Schema for inputObject with propertiesJSON Schema for parameters
FC Force invocationVia tool_choice parameterVia toolConfig parameterVia tool_choice parameter
FC Model invocationModel generates a tool_use block with predicted parametersGenerates a functionCall part with predicted parametersGenerates a message.tool_calls item with predicted arguments
FC ExecutionClient-sideClient-sideClient-side
FC Result injectionClient appends a user message with a tool_result content blockClient appends a function message with functionResponse partClient sends a new tool message with tool_call_id and content
Built-in Code executionNoYesNo
Tool use with visionYesYesYes
Generation Configuration
temperatureYesYesYes
max_tokensYesYesYes
stop_sequencesYesYesYes
top_kYesYesNo
top_pYesYesYes
seedNoNoYes
Multiple candidatesNoNoYes (with 'n' parameter, breaks streaming?)
Streaming and Response Structure
Streaming supportYesYesYes
Streaming initiationstream=truestreamGenerateContent pathstream=true
Streaming event typesMultiple specific typesNot specifiedSingle delta type
Response containercontent (array)candidates (array)choices (array)
Usage Metrics and Error Handling
Token countsYesYesYes
Detailed token breakdowninput, outputprompt, cached, candidates, totalprompt, completion, total
Usage in streamNoNoOptional
Error handling in responseNot specifiedNot specifiedYes (undocumented)
Error handling in streamNot specifiedNot specifiedYes (undocumented)
Advanced Features
JSON modePartial (via structured prompts)Yes (responseMimeType)Yes
Output consistency techniquesYes (multiple methods)Not specifiedNot specified
LogprobsNoNoYes (disabled in schema)
System fingerprintNoNoYes
Semantic cachingNoYesNo
Assistant prefillYesNoNo
Preferred formattingXML tags, JSONNot specifiedMarkdown
Safety and Compliance
Safety settings in requestStop sequencesDetailed category-basedModeration API
Safety feedback in responseYesYesNot specified