Documentation
¶
Overview ¶
Package translator provides types and functions for converting chat requests and responses between different schemas.
Index ¶
- func HasResponseTransformer(from, to Format) bool
- func Register(from, to Format, request RequestTransform, response ResponseTransform)
- func TranslateNonStream(ctx context.Context, from, to Format, model string, ...) string
- func TranslateRequest(from, to Format, model string, rawJSON []byte, stream bool) []byte
- func TranslateStream(ctx context.Context, from, to Format, model string, ...) []string
- func TranslateTokenCount(ctx context.Context, from, to Format, count int64, rawJSON []byte) string
- type Format
- type Pipeline
- func (p *Pipeline) TranslateRequest(ctx context.Context, from, to Format, req RequestEnvelope) (RequestEnvelope, error)
- func (p *Pipeline) TranslateResponse(ctx context.Context, from, to Format, resp ResponseEnvelope, ...) (ResponseEnvelope, error)
- func (p *Pipeline) UseRequest(mw RequestMiddleware)
- func (p *Pipeline) UseResponse(mw ResponseMiddleware)
- type Registry
- func (r *Registry) HasResponseTransformer(from, to Format) bool
- func (r *Registry) Register(from, to Format, request RequestTransform, response ResponseTransform)
- func (r *Registry) TranslateNonStream(ctx context.Context, from, to Format, model string, ...) string
- func (r *Registry) TranslateRequest(from, to Format, model string, rawJSON []byte, stream bool) []byte
- func (r *Registry) TranslateStream(ctx context.Context, from, to Format, model string, ...) []string
- func (r *Registry) TranslateTokenCount(ctx context.Context, from, to Format, count int64, rawJSON []byte) string
- type RequestEnvelope
- type RequestHandler
- type RequestMiddleware
- type RequestTransform
- type ResponseEnvelope
- type ResponseHandler
- type ResponseMiddleware
- type ResponseNonStreamTransform
- type ResponseStreamTransform
- type ResponseTokenCountTransform
- type ResponseTransform
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HasResponseTransformer ¶
HasResponseTransformer inspects the default registry.
func Register ¶
func Register(from, to Format, request RequestTransform, response ResponseTransform)
Register attaches transforms to the default registry.
func TranslateNonStream ¶
func TranslateNonStream(ctx context.Context, from, to Format, model string, originalRequestRawJSON, requestRawJSON, rawJSON []byte, param *any) string
TranslateNonStream is a helper on the default registry.
func TranslateRequest ¶
TranslateRequest is a helper on the default registry.
Types ¶
type Format ¶
type Format string
Format identifies a request/response schema used inside the proxy.
func FromString ¶
FromString converts an arbitrary identifier to a translator format.
type Pipeline ¶
type Pipeline struct {
// contains filtered or unexported fields
}
Pipeline orchestrates request/response transformation with middleware support.
func NewPipeline ¶
NewPipeline constructs a pipeline bound to the provided registry.
func (*Pipeline) TranslateRequest ¶
func (p *Pipeline) TranslateRequest(ctx context.Context, from, to Format, req RequestEnvelope) (RequestEnvelope, error)
TranslateRequest applies middleware and registry transformations.
func (*Pipeline) TranslateResponse ¶
func (p *Pipeline) TranslateResponse(ctx context.Context, from, to Format, resp ResponseEnvelope, originalReq, translatedReq []byte, param *any) (ResponseEnvelope, error)
TranslateResponse applies middleware and registry transformations.
func (*Pipeline) UseRequest ¶
func (p *Pipeline) UseRequest(mw RequestMiddleware)
UseRequest adds request middleware executed in registration order.
func (*Pipeline) UseResponse ¶
func (p *Pipeline) UseResponse(mw ResponseMiddleware)
UseResponse adds response middleware executed in registration order.
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry manages translation functions across schemas.
func NewRegistry ¶
func NewRegistry() *Registry
NewRegistry constructs an empty translator registry.
func (*Registry) HasResponseTransformer ¶
HasResponseTransformer indicates whether a response translator exists.
func (*Registry) Register ¶
func (r *Registry) Register(from, to Format, request RequestTransform, response ResponseTransform)
Register stores request/response transforms between two formats.
func (*Registry) TranslateNonStream ¶
func (r *Registry) TranslateNonStream(ctx context.Context, from, to Format, model string, originalRequestRawJSON, requestRawJSON, rawJSON []byte, param *any) string
TranslateNonStream applies the registered non-stream response translator.
func (*Registry) TranslateRequest ¶
func (r *Registry) TranslateRequest(from, to Format, model string, rawJSON []byte, stream bool) []byte
TranslateRequest converts a payload between schemas, returning the original payload if no translator is registered.
type RequestEnvelope ¶
RequestEnvelope represents a request in the translation pipeline.
type RequestHandler ¶
type RequestHandler func(ctx context.Context, req RequestEnvelope) (RequestEnvelope, error)
RequestHandler performs request translation between formats.
type RequestMiddleware ¶
type RequestMiddleware func(ctx context.Context, req RequestEnvelope, next RequestHandler) (RequestEnvelope, error)
RequestMiddleware decorates request translation.
type RequestTransform ¶
RequestTransform is a function type that converts a request payload from a source schema to a target schema. It takes the model name, the raw JSON payload of the request, and a boolean indicating if the request is for a streaming response. It returns the converted request payload as a byte slice.
type ResponseEnvelope ¶
ResponseEnvelope represents a response in the translation pipeline.
type ResponseHandler ¶
type ResponseHandler func(ctx context.Context, resp ResponseEnvelope) (ResponseEnvelope, error)
ResponseHandler performs response translation between formats.
type ResponseMiddleware ¶
type ResponseMiddleware func(ctx context.Context, resp ResponseEnvelope, next ResponseHandler) (ResponseEnvelope, error)
ResponseMiddleware decorates response translation.
type ResponseNonStreamTransform ¶
type ResponseNonStreamTransform func(ctx context.Context, model string, originalRequestRawJSON, requestRawJSON, rawJSON []byte, param *any) string
ResponseNonStreamTransform is a function type that converts a non-streaming response from a source schema to a target schema. It takes a context, the model name, the raw JSON of the original and converted requests, the raw JSON of the response, and an optional parameter. It returns the converted response as a single string.
type ResponseStreamTransform ¶
type ResponseStreamTransform func(ctx context.Context, model string, originalRequestRawJSON, requestRawJSON, rawJSON []byte, param *any) []string
ResponseStreamTransform is a function type that converts a streaming response from a source schema to a target schema. It takes a context, the model name, the raw JSON of the original and converted requests, the raw JSON of the current response chunk, and an optional parameter. It returns a slice of strings, where each string is a chunk of the converted streaming response.
type ResponseTokenCountTransform ¶
ResponseTokenCountTransform is a function type that transforms a token count from a source format to a target format. It takes a context and the token count as an int64, and returns the transformed token count as a string.
type ResponseTransform ¶
type ResponseTransform struct { // Stream is the function for transforming streaming responses. Stream ResponseStreamTransform // NonStream is the function for transforming non-streaming responses. NonStream ResponseNonStreamTransform // TokenCount is the function for transforming token counts. TokenCount ResponseTokenCountTransform }
ResponseTransform is a struct that groups together the functions for transforming streaming and non-streaming responses, as well as token counts.