| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package tools
- import (
- "context"
- )
- type (
- sessionIDContextKey string
- messageIDContextKey string
- supportsImagesKey string
- modelNameKey string
- )
- const (
- // SessionIDContextKey is the key for the session ID in the context.
- SessionIDContextKey sessionIDContextKey = "session_id"
- // MessageIDContextKey is the key for the message ID in the context.
- MessageIDContextKey messageIDContextKey = "message_id"
- // SupportsImagesContextKey is the key for the model's image support capability.
- SupportsImagesContextKey supportsImagesKey = "supports_images"
- // ModelNameContextKey is the key for the model name in the context.
- ModelNameContextKey modelNameKey = "model_name"
- )
- // getContextValue is a generic helper that retrieves a typed value from context.
- // If the value is not found or has the wrong type, it returns the default value.
- func getContextValue[T any](ctx context.Context, key any, defaultValue T) T {
- value := ctx.Value(key)
- if value == nil {
- return defaultValue
- }
- if typedValue, ok := value.(T); ok {
- return typedValue
- }
- return defaultValue
- }
- // GetSessionFromContext retrieves the session ID from the context.
- func GetSessionFromContext(ctx context.Context) string {
- return getContextValue(ctx, SessionIDContextKey, "")
- }
- // GetMessageFromContext retrieves the message ID from the context.
- func GetMessageFromContext(ctx context.Context) string {
- return getContextValue(ctx, MessageIDContextKey, "")
- }
- // GetSupportsImagesFromContext retrieves whether the model supports images from the context.
- func GetSupportsImagesFromContext(ctx context.Context) bool {
- return getContextValue(ctx, SupportsImagesContextKey, false)
- }
- // GetModelNameFromContext retrieves the model name from the context.
- func GetModelNameFromContext(ctx context.Context) string {
- return getContextValue(ctx, ModelNameContextKey, "")
- }
|