Skip to main content

Overview

Passthrough integrations let you call provider-native API paths and payloads through Bifrost without route-level request/response conversion. When you use passthrough endpoints, the request still flows through Bifrost core logic. You keep Bifrost features such as logging and observability while sending provider-native paths and bodies.

Endpoints

  • /openai_passthrough
    Default provider: openai
  • /genai_passthrough
    Default provider: gemini (with automatic Vertex detection for clients configured to use Vertex)

How It Works

  1. Send your request to a passthrough endpoint (OpenAI or GenAI passthrough).
  2. The integration strips the passthrough prefix and forwards the remaining provider-native path/body.
  3. Bifrost handles provider execution through core inference and plugin pipelines.
  4. Response status, headers, and body are returned as passthrough output (for both stream and non-stream requests).

Provider Selection Rules

OpenAI Passthrough

  • Uses openai as the default provider.

GenAI Passthrough

  • Uses gemini by default.
  • Automatically switches to vertex when Vertex patterns are detected, such as:
    • URL path containing /projects/{PROJECT_ID}/locations/{LOCATION}/
    • Request body model containing a Vertex resource path
    • OAuth token pattern typically used for Vertex (Bearer ya29...)

Usage Examples

OpenAI Passthrough

import openai

client = openai.OpenAI(
    base_url="http://localhost:8080/openai_passthrough/v1",
    api_key="dummy-key"
)

response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role": "user", "content": "hello from passthrough"}]
)

print(response.choices[0].message.content)

GenAI Passthrough (Gemini)

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(
    api_key="dummy-key",
    http_options=HttpOptions(base_url="http://localhost:8080/genai_passthrough")
)

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="hello from passthrough"
)

print(response.text)

GenAI Passthrough (Vertex-style request)

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(
    vertexai=True,
    api_key="dummy-key",
    http_options=HttpOptions(base_url="http://localhost:8080/genai_passthrough")
)

response = client.models.generate_content(
    model="gemini-2.5-flash",
    contents="hello from vertex passthrough"
)

print(response.text)

Notes

  • Use passthrough when you need a provider endpoint that is not directly supported by Bifrost integration routes yet.