Files
Beyhan Oğur 880f412e2c first commit
2026-04-26 21:52:23 +03:00

40 lines
1.5 KiB
Go

package integrations
import (
bifrost "github.com/maximhq/bifrost/core"
"github.com/maximhq/bifrost/core/schemas"
"github.com/maximhq/bifrost/transports/bifrost-http/lib"
)
// LiteLLMRouter holds route registrations for LiteLLM endpoints.
// It supports standard chat completions and image-enabled vision capabilities.
// LiteLLM is fully OpenAI-compatible, so we reuse OpenAI types
// with aliases for clarity and minimal LiteLLM-specific extensions
type LiteLLMRouter struct {
*GenericRouter
}
// NewLiteLLMRouter creates a new LiteLLMRouter with the given bifrost client.
func NewLiteLLMRouter(client *bifrost.Bifrost, handlerStore lib.HandlerStore, logger schemas.Logger) *LiteLLMRouter {
routes := []RouteConfig{}
// Add OpenAI routes to LiteLLM for OpenAI API compatibility
routes = append(routes, CreateOpenAIRouteConfigs("/litellm", handlerStore)...)
// Add Anthropic routes to LiteLLM for Anthropic API compatibility
routes = append(routes, CreateAnthropicRouteConfigs("/litellm", logger)...)
// Add GenAI routes to LiteLLM for Vertex AI compatibility
routes = append(routes, CreateGenAIRouteConfigs("/litellm")...)
// Add Bedrock routes to LiteLLM for AWS Bedrock API compatibility
routes = append(routes, CreateBedrockRouteConfigs("/litellm", handlerStore)...)
// Add Cohere routes to LiteLLM for Cohere API compatibility
routes = append(routes, CreateCohereRouteConfigs("/litellm")...)
return &LiteLLMRouter{
GenericRouter: NewGenericRouter(client, handlerStore, routes, nil, logger),
}
}