Documentation
¶
Index ¶
- func CountOpenAITokens(text string) (int, error)
- func CountOpenAITokensForModel(text, model string) (int, error)
- func DecompressAndDecode(val string, headers map[string]interface{}) (string, bool)
- func IsOpenAIStreaming(body string) bool
- func MergeOpenAIStreamingChunks(body string) (map[string]any, error)
- func MergeThreadStreamingChunks(body string) (map[string]any, error)
- func ToSnakeCase(s string) string
- func ToSnakeCaseMap(m map[string]interface{}) map[string]interface{}
- type OpenAITransformer
- type Transformer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CountOpenAITokens ¶
CountOpenAITokens counts tokens using a general-purpose encoding. Note: Prefer CountOpenAITokensForModel when the model is known.
func CountOpenAITokensForModel ¶
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 ¶
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 ¶
IsOpenAIStreaming detects if the response body is a sequence of OpenAI streaming chunks (data: ... lines).
func MergeOpenAIStreamingChunks ¶
MergeOpenAIStreamingChunks parses and merges OpenAI streaming chunks into a single response object.
func MergeThreadStreamingChunks ¶
MergeThreadStreamingChunks parses and merges assistant thread.run streaming events.
func ToSnakeCase ¶
ToSnakeCase converts a string from CamelCase, PascalCase, or kebab-case to snake_case
func ToSnakeCaseMap ¶
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 ¶
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.