eventtransformer

package
v0.0.0-...-48df7e4 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CountOpenAITokens

func CountOpenAITokens(text string) (int, error)

CountOpenAITokens counts tokens using a general-purpose encoding. Note: Prefer CountOpenAITokensForModel when the model is known.

func CountOpenAITokensForModel

func CountOpenAITokensForModel(text, model string) (int, error)

CountOpenAITokensForModel selects an encoding based on the provided model name. Fallback rules: - 4o/omni/o1 family → o200k_base - otherwise → cl100k_base If EncodingForModel succeeds, it is used directly.

func DecompressAndDecode

func DecompressAndDecode(val string, headers map[string]interface{}) (string, bool)

DecompressAndDecode attempts to decompress (gzip, brotli) if needed, then base64 decode if needed, and returns the decoded string and true if decoding was successful.

func IsOpenAIStreaming

func IsOpenAIStreaming(body string) bool

IsOpenAIStreaming detects if the response body is a sequence of OpenAI streaming chunks (data: ... lines).

func MergeOpenAIStreamingChunks

func MergeOpenAIStreamingChunks(body string) (map[string]any, error)

MergeOpenAIStreamingChunks parses and merges OpenAI streaming chunks into a single response object.

func MergeThreadStreamingChunks

func MergeThreadStreamingChunks(body string) (map[string]any, error)

MergeThreadStreamingChunks parses and merges assistant thread.run streaming events.

func ToSnakeCase

func ToSnakeCase(s string) string

ToSnakeCase converts a string from CamelCase, PascalCase, or kebab-case to snake_case

func ToSnakeCaseMap

func ToSnakeCaseMap(m map[string]interface{}) map[string]interface{}

ToSnakeCaseMap recursively converts all map keys to snake_case, replacing dashes and handling consecutive uppercase letters

Types

type OpenAITransformer

type OpenAITransformer struct{}

OpenAITransformer implements Transformer for OpenAI events.

func (*OpenAITransformer) TransformEvent

func (t *OpenAITransformer) TransformEvent(evt map[string]any) (map[string]any, error)

TransformEvent transforms an OpenAI event for logging/analytics. It handles OPTIONS skipping, header filtering, decoding, chunk merging, token counting, and snake_case normalization.

type Transformer

type Transformer interface {
	TransformEvent(event map[string]interface{}) (map[string]interface{}, error)
}

Transformer is the interface for provider-specific event transformers.

func DispatchTransformer

func DispatchTransformer(provider string) Transformer

DispatchTransformer returns the appropriate transformer for a given provider.

Jump to

Keyboard shortcuts

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