Skip to content

Overview

DeepIntShield supports a wide range of AI providers, all accessible through a consistent OpenAI-compatible interface. This standardization allows you to switch between providers without modifying your application code, as all responses follow the same structure regardless of the underlying provider.

DeepIntShield can also act as a provider-compatible gateway (for example, Anthropic, Google Gemini, Cohere, Bedrock, and others), exposing provider-specific endpoints so you can use existing provider SDKs or integrations with no code changes, see What is an integration? for details.

The following table summarizes which operations are supported by each provider via DeepIntShield’s unified interface.

ProviderModelsTextText (stream)ChatChat (stream)ResponsesResponses (stream)ImagesImages (stream)Image EditImage Edit (stream)Image VariationEmbeddingsTTSTTS (stream)STTSTT (stream)FilesBatchCount tokens
Anthropic (anthropic/<model>)
Azure (azure/<model>)
Bedrock (bedrock/<model>)
Cerebras (cerebras/<model>)
Cohere (cohere/<model>)
Elevenlabs (elevenlabs/<model>)
Gemini (gemini/<model>)
Groq (groq/<model>)🟡🟡
Hugging Face (huggingface/<model>)
Mistral (mistral/<model>)
Nebius (nebius/<model>)
Ollama (ollama/<model>)
OpenAI (openai/<model>)
OpenRouter (openrouter/<model>)
Parasail (parasail/<model>)
Perplexity (perplexity/<model>)
Replicate (replicate/<model>)
SGL (sgl/<model>)
Vertex AI (vertex/<model>)
vLLM (vllm/<model>)
xAI (xai/<model>)
  • 🟡 Not supported by the downstream provider, but internally implemented by DeepIntShield as a fallback.
  • ❌ Not supported by the downstream provider, hence not supported by DeepIntShield.
  • ✅ Fully supported by the downstream provider, or internally implemented by DeepIntShield.

Notes:

  • “Models” refers to the list models operation (/v1/models).
  • “Text” refers to the classic text completion interface (/v1/completions).
  • “Responses” refers to the OpenAI-style Responses API (/v1/responses). Non-OpenAI providers map this to their native chat API under the hood.
  • Reranking (/v1/rerank) is currently supported for Cohere, Bedrock, Vertex AI, and vLLM. See each provider page for model-specific requirements.
  • “Images” refers to the Image Generation API (/v1/images/generations).
  • “Image Edit” refers to the Image Edit API (/v1/images/edits).
  • “Image Variation” refers to the Image Variation API (/v1/images/variations).
  • TTS corresponds to /v1/audio/speech and STT to /v1/audio/transcriptions.
  • “Files” refers to the Files API operations (/v1/files) for uploading, listing, retrieving, and deleting files.
  • “Batch” refers to the Batch API operations (/v1/batches) for creating, listing, retrieving, canceling, and getting results of batch jobs.

All providers return responses in the OpenAI-compatible format. DeepIntShield handles the translation between different provider-specific formats automatically.

Terminal window
# Same response format regardless of provider
curl -X POST http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-4o-mini",
"messages": [{"role": "user", "content": "Hello!"}]
}'
# Returns OpenAI-compatible format:
{
"id": "chatcmpl-123",
"object": "chat.completion",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello! How can I help you?"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 9,
"total_tokens": 19
}
}

In addition to the built-in providers, DeepIntShield supports custom provider configurations. Custom providers allow you to create multiple instances of the same base provider with different configurations, request type restrictions, and access patterns. This is useful for environment-specific configurations, role-based access control, and feature testing.

Learn more: Custom Providers

The consistent interface across providers enables:

  • Provider switching without code modifications
  • Fallback configurations for improved reliability
  • Load balancing across multiple providers
  • OpenAI-compatible patterns for all providers

Provider information is included in the extra_fields section of each response, providing transparency into which provider handled the request and any provider-specific metadata.

DeepIntShield can optionally return the raw request that was sent to the provider and the raw response received back. This is useful for debugging, auditing, and understanding how DeepIntShield transforms requests between different provider formats.

What’s included:

  • raw_request - The exact request body (JSON/data structure) that was sent to the provider’s API endpoint
  • raw_response - The exact response body received from the provider (before DeepIntShield’s normalization)
  • Provider transformation details - Shows exactly how DeepIntShield converted your input to provider-specific format

Example: When you send a Chat Completions request with max_completion_tokens to Anthropic, DeepIntShield converts it to max_tokens in the raw request. Enabling raw request/response reveals this transformation.

{
"extra_fields": {
"provider": "anthropic",
"raw_request": {
"model": "claude-3-5-sonnet",
"max_tokens": 4096,
"messages": [...]
},
"raw_response": {
"id": "msg_...",
"type": "message",
"content": [...],
"usage": {
"input_tokens": 123,
"output_tokens": 456
}
}
}
}

Use cases:

  • Debugging - Verify how your request was transformed for the specific provider
  • Auditing - Track exactly what was sent to external APIs
  • Cost analysis - See actual token counts before DeepIntShield’s normalization
  • Integration testing - Validate provider-specific transformations

Configuration options: