config

package
v2.3.0 Latest Latest
Warning

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

Go to latest
Published: Aug 19, 2024 License: MIT Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultListenAddr = "127.0.0.1:8080"
	DefaultCacheDir   = "/tmp/llm_proxy"
)

Variables

View Source
var LogSourceConfigAllTrue = LogSourceConfig{
	LogConnectionStats: true,
	LogRequestHeaders:  true,
	LogRequest:         true,
	LogResponseHeaders: true,
	LogResponse:        true,
}

Functions

This section is empty.

Types

type AppMode

type AppMode int
const (
	ProxyRunMode AppMode = iota
	CacheMode
	APIAuditMode
)

type CacheStorage added in v2.2.0

type CacheStorage struct {
	ConfigVersion  string `json:"config_version"`  // The schema version of this cache index file.
	StorageEngine  string `json:"storage_engine"`  // The storage engine used for this cache
	StorageVersion string `json:"storage_version"` // The storage version used for this cache
	StoragePath    string `json:"storage_path"`    // The full path to the storage bucket (file path or database URI)
	// contains filtered or unexported fields
}

CacheStorage is a struct that backs a llm_proxy_cache.json file, which configures the cache storage object

func NewCacheStorageConfig

func NewCacheStorageConfig(logger *slog.Logger, cacheDir string) (*CacheStorage, error)

NewCacheStorageConfig creates a new IndexFile object to help with loading/saving meta-state as a json file. This object's purpose is to help loading the other database objects by pointing to their connection settings or file paths.

cacheDir: the directory where the cache index file will be stored

func (*CacheStorage) Load added in v2.2.0

func (i *CacheStorage) Load() error

Load reads the cache config json file from disk

func (CacheStorage) Save added in v2.2.0

func (i CacheStorage) Save() error

Save writes the cache config json file to disk

type Config

type Config struct {
	AppMode       AppMode
	Cache         *cacheBehavior
	HeaderFilters *HeaderFiltersContainer
	HttpBehavior  *httpBehavior
	TrafficLogger *trafficLogger
	// contains filtered or unexported fields
}

Config is the main config mega-struct

func NewDefaultConfig

func NewDefaultConfig() *Config

func (*Config) EnableOutputDebug added in v2.2.0

func (cfg *Config) EnableOutputDebug()

func (*Config) EnableOutputTrace added in v2.2.0

func (cfg *Config) EnableOutputTrace()

func (*Config) EnableOutputVerbose added in v2.2.0

func (cfg *Config) EnableOutputVerbose()

func (*Config) GetLogger added in v2.2.0

func (cfg *Config) GetLogger() *slog.Logger

func (*Config) GetLoggerLevel added in v2.2.0

func (cfg *Config) GetLoggerLevel() slog.Level

func (*Config) GetTerminalOutputFormat added in v2.2.0

func (cfg *Config) GetTerminalOutputFormat() LogFormat

func (*Config) IsTraceEnabled added in v2.2.0

func (cfg *Config) IsTraceEnabled() bool

IsOutputDebug returns true if the log is configured to add the source file to the log output

func (*Config) IsVerboseOrHigher

func (cfg *Config) IsVerboseOrHigher() bool

IsVerboseOrHigher returns 1 if the log level is verbose or higher

func (*Config) SetLoggerLevel

func (cfg *Config) SetLoggerLevel()

func (*Config) SetTerminalOutputFormat added in v2.2.0

func (cfg *Config) SetTerminalOutputFormat(terminalLogFormat string) (LogFormat, error)

func (*Config) SetTrafficLogFormat added in v2.2.0

func (cfg *Config) SetTrafficLogFormat(logfmt string) error

type HeaderFilterGroup added in v2.3.0

type HeaderFilterGroup struct {
	Headers []string // user-editable list of headers to filter
	// contains filtered or unexported fields
}

HeaderFilterGroup is an object used to filter headers for a specific purpose, such as when reading existing logs (remove content-type), writing new logs (remove auth), or when sending requests to upstream.

func NewHeaderFilterGroup added in v2.3.0

func NewHeaderFilterGroup(name string, headers, persistentHeaders []string) *HeaderFilterGroup

NewHeaderFilterGroup creates a new HeaderFilterGroup

func (*HeaderFilterGroup) FilterHeaders added in v2.3.0

func (hg *HeaderFilterGroup) FilterHeaders(headers http.Header, additionalHeaders ...string) http.Header

FilterHeaders makes a shallow copy of the headers map and removes any headers that are in the filter group. additionalHeaders is a variadic parameter that allows for additional headers to be removed from the new map that will be returned by this method.

func (*HeaderFilterGroup) IsHeaderInGroup added in v2.3.0

func (hg *HeaderFilterGroup) IsHeaderInGroup(header string) bool

IsHeaderInGroup returns true if the header should be filtered by this group

func (*HeaderFilterGroup) String added in v2.3.0

func (hfg *HeaderFilterGroup) String() string

type HeaderFiltersContainer added in v2.3.0

type HeaderFiltersContainer struct {
	// Headers set by the upstream, to be filtered from requests stored in the cache
	ResponseToCache *HeaderFilterGroup

	// Headers set by the client, to be omitted from logs
	RequestToLogs *HeaderFilterGroup // filter-request-headers-to-logs

	// Headers set by upstream, to be omitted from logs
	ResponseToLogs *HeaderFilterGroup // filter-response-headers-to-logs

	// Headers set by the client, to be filtered from requests sent upstream
	RequestToUpstream *HeaderFilterGroup // filter-request-headers-to-upstream

	// Headers set by upstream, to be filtered from the responses sent to the client
	ResponseToClient *HeaderFilterGroup // filter-response-headers-to-client
}

HeaderFiltersContainer holds the configuration for filtering headers

func NewHeaderFiltersContainer added in v2.3.0

func NewHeaderFiltersContainer() *HeaderFiltersContainer

NewHeaderFiltersContainer creates a new HeaderFiltersContainer with default values

func (*HeaderFiltersContainer) BuildIndexes added in v2.3.0

func (hg *HeaderFiltersContainer) BuildIndexes()

BuildIndexes rebuilds the internal indexes for the header filters

type LogFormat added in v2.2.0

type LogFormat int
const (
	LogFormat_JSON LogFormat = iota
	LogFormat_TXT
)

func StringToLogFormat added in v2.2.0

func StringToLogFormat(logFormat string) (LogFormat, error)

StringToLogFormat converts a string to a LogLevel enum value.

func (LogFormat) String added in v2.2.0

func (f LogFormat) String() string

type LogSourceConfig

type LogSourceConfig struct {
	LogConnectionStats bool
	LogRequestHeaders  bool
	LogRequest         bool
	LogResponseHeaders bool
	LogResponse        bool
}

LogSourceConfig holds the configuration toggles for logging request and response data

func (*LogSourceConfig) String

func (l *LogSourceConfig) String() string

Jump to

Keyboard shortcuts

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