40 lines
1.5 KiB
Go
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),
|
|
}
|
|
}
|