translator

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 23, 2026 License: Apache-2.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	LineFeedSSEDelimiter               = "\n\n"
	CarriageReturnSSEDelimiter         = "\r\r"
	CarriageReturnLineFeedSSEDelimiter = "\r\n\r\n"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AnthropicMessagesTranslator

type AnthropicMessagesTranslator = Translator[anthropicschema.MessagesRequest, tracingapi.MessageSpan]

AnthropicMessagesTranslator translates the Anthropic's /messages endpoint.

func NewAnthropicToAWSAnthropicTranslator

func NewAnthropicToAWSAnthropicTranslator(apiVersion string, modelNameOverride internalapi.ModelNameOverride) AnthropicMessagesTranslator

NewAnthropicToAWSAnthropicTranslator creates a translator for Anthropic to AWS Bedrock Anthropic format. AWS Bedrock supports the native Anthropic Messages API, so this is essentially a passthrough translator with AWS-specific path modifications.

func NewAnthropicToAnthropicTranslator

func NewAnthropicToAnthropicTranslator(version string, modelNameOverride internalapi.ModelNameOverride) AnthropicMessagesTranslator

NewAnthropicToAnthropicTranslator creates a passthrough translator for Anthropic.

func NewAnthropicToGCPAnthropicTranslator

func NewAnthropicToGCPAnthropicTranslator(apiVersion string, modelNameOverride internalapi.ModelNameOverride) AnthropicMessagesTranslator

NewAnthropicToGCPAnthropicTranslator creates a translator for Anthropic to GCP Anthropic format. This is essentially a passthrough translator with GCP-specific modifications.

type CohereRerankTranslator

type CohereRerankTranslator = Translator[cohereschema.RerankV2Request, tracingapi.RerankSpan]

CohereRerankTranslator translates the Cohere's /v2/rerank endpoint.

func NewRerankCohereToCohereTranslator

func NewRerankCohereToCohereTranslator(apiVersion string, modelNameOverride internalapi.ModelNameOverride) CohereRerankTranslator

NewRerankCohereToCohereTranslator implements [Factory] for Cohere Rerank v2 translation.

type OpenAIChatCompletionTranslator

type OpenAIChatCompletionTranslator = Translator[openai.ChatCompletionRequest, tracingapi.ChatCompletionSpan]

OpenAIChatCompletionTranslator translates the OpenAI's /chat/completions endpoint.

func NewChatCompletionOpenAIToAWSBedrockTranslator

func NewChatCompletionOpenAIToAWSBedrockTranslator(modelNameOverride internalapi.ModelNameOverride) OpenAIChatCompletionTranslator

NewChatCompletionOpenAIToAWSBedrockTranslator implements [Factory] for OpenAI to AWS Bedrock translation.

func NewChatCompletionOpenAIToAzureOpenAITranslator

func NewChatCompletionOpenAIToAzureOpenAITranslator(apiVersion string, modelNameOverride internalapi.ModelNameOverride) OpenAIChatCompletionTranslator

NewChatCompletionOpenAIToAzureOpenAITranslator implements [Factory] for OpenAI to Azure OpenAI translations. Except RequestBody method requires modification to satisfy Microsoft Azure OpenAI spec https://learn.microsoft.com/en-us/azure/ai-services/openai/reference#chat-completions, other interface methods are identical to NewChatCompletionOpenAIToOpenAITranslator's interface implementations.

func NewChatCompletionOpenAIToGCPAnthropicTranslator

func NewChatCompletionOpenAIToGCPAnthropicTranslator(apiVersion string, modelNameOverride internalapi.ModelNameOverride) OpenAIChatCompletionTranslator

NewChatCompletionOpenAIToGCPAnthropicTranslator implements [Factory] for OpenAI to GCP Anthropic translation. This translator converts OpenAI ChatCompletion API requests to GCP Anthropic API format.

func NewChatCompletionOpenAIToGCPVertexAITranslator

func NewChatCompletionOpenAIToGCPVertexAITranslator(modelNameOverride internalapi.ModelNameOverride) OpenAIChatCompletionTranslator

NewChatCompletionOpenAIToGCPVertexAITranslator implements [Factory] for OpenAI to GCP Gemini translation. This translator converts OpenAI ChatCompletion API requests to GCP Gemini API format.

func NewChatCompletionOpenAIToOpenAITranslator

func NewChatCompletionOpenAIToOpenAITranslator(prefix string, modelNameOverride internalapi.ModelNameOverride) OpenAIChatCompletionTranslator

NewChatCompletionOpenAIToOpenAITranslator implements [Factory] for OpenAI to OpenAI translation.

type OpenAICompletionTranslator

type OpenAICompletionTranslator = Translator[openai.CompletionRequest, tracingapi.CompletionSpan]

OpenAICompletionTranslator translates the OpenAI's /completions endpoint.

func NewCompletionOpenAIToOpenAITranslator

func NewCompletionOpenAIToOpenAITranslator(apiVersion string, modelNameOverride internalapi.ModelNameOverride) OpenAICompletionTranslator

NewCompletionOpenAIToOpenAITranslator implements [Factory] for OpenAI to OpenAI translation for completions.

type OpenAIEmbeddingTranslator

type OpenAIEmbeddingTranslator = Translator[openai.EmbeddingRequest, tracingapi.EmbeddingsSpan]

OpenAIEmbeddingTranslator translates the OpenAI's /embeddings endpoint.

func NewEmbeddingOpenAIToAzureOpenAITranslator

func NewEmbeddingOpenAIToAzureOpenAITranslator(apiVersion string, modelNameOverride internalapi.ModelNameOverride) OpenAIEmbeddingTranslator

NewEmbeddingOpenAIToAzureOpenAITranslator implements [Factory] for OpenAI to Azure OpenAI translation for embeddings.

func NewEmbeddingOpenAIToOpenAITranslator

func NewEmbeddingOpenAIToOpenAITranslator(apiVersion string, modelNameOverride internalapi.ModelNameOverride) OpenAIEmbeddingTranslator

NewEmbeddingOpenAIToOpenAITranslator implements [Factory] for OpenAI to OpenAI translation for embeddings.

type OpenAIImageGenerationTranslator

type OpenAIImageGenerationTranslator = Translator[openai.ImageGenerationRequest, tracingapi.ImageGenerationSpan]

OpenAIImageGenerationTranslator translates the OpenAI's /images/generations endpoint.

func NewImageGenerationOpenAIToOpenAITranslator

func NewImageGenerationOpenAIToOpenAITranslator(apiVersion string, modelNameOverride internalapi.ModelNameOverride) OpenAIImageGenerationTranslator

NewImageGenerationOpenAIToOpenAITranslator implements [Factory] for OpenAI to OpenAI image generation translation.

type OpenAIResponsesTranslator

type OpenAIResponsesTranslator = Translator[openai.ResponseRequest, tracingapi.ResponsesSpan]

OpenAIResponsesTranslator translates the OpenAI's /responses endpoint.

func NewResponsesOpenAIToOpenAITranslator

func NewResponsesOpenAIToOpenAITranslator(prefix string, modelNameOverride internalapi.ModelNameOverride) OpenAIResponsesTranslator

NewResponsesOpenAIToOpenAITranslator implements OpenAIResponsesTranslator for OpenAI to OpenAI translation for responses.

type Translator

type Translator[ReqT any, SpanT any] interface {
	// RequestBody translates the request body.
	//     - `raw` is the raw request body.
	//     - `body` is the parsed request body of type *ReqT.
	//     - `flag` is a boolean context flag. Depending on the specific implementation,
	//       this represents either `forceBodyMutation` or `onRetry`.
	RequestBody(raw []byte, body *ReqT, flag bool) (
		newHeaders []internalapi.Header,
		mutatedBody []byte,
		err error,
	)

	// ResponseHeaders translates the response headers.
	ResponseHeaders(headers map[string]string) (
		newHeaders []internalapi.Header,
		err error,
	)

	// ResponseBody translates the response body.
	//     - `span` is the tracing span of type SpanT. Implementations that do not
	//       require tracing in this step can ignore this argument.
	ResponseBody(respHeaders map[string]string, body io.Reader, endOfStream bool, span SpanT) (
		newHeaders []internalapi.Header,
		mutatedBody []byte,
		tokenUsage metrics.TokenUsage,
		responseModel internalapi.ResponseModel,
		err error,
	)

	// ResponseError translates the response error (non-2xx status codes).
	ResponseError(respHeaders map[string]string, body io.Reader) (
		newHeaders []internalapi.Header,
		mutatedBody []byte,
		err error,
	)
}

Translator translates the request and response messages between the client and the backend API schemas.

ReqT represents the structured request body type. SpanT represents the tracing span type passed to ResponseBody. Use any if the implementation does not have tracing span yet.

This is created per request and is not thread-safe.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL