config

package
v0.16.1 Latest Latest
Warning

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

Go to latest
Published: Jul 26, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Overview

Code generated from OpenAPI schema. DO NOT EDIT.

Index

Constants

View Source
const APPLICATION_NAME = "inference-gateway"
View Source
const VERSION = "v0.16.1"

Variables

This section is empty.

Functions

This section is empty.

Types

type A2AConfig added in v0.10.0

type A2AConfig struct {
	Enable                 bool          `env:"ENABLE, default=false" description:"Enable A2A protocol support"`
	Expose                 bool          `env:"EXPOSE, default=false" description:"Expose A2A agents list cards endpoint"`
	Agents                 string        `env:"AGENTS" description:"Comma-separated list of A2A agent URLs"`
	ClientTimeout          time.Duration `env:"CLIENT_TIMEOUT, default=30s" description:"A2A client timeout"`
	PollingEnable          bool          `env:"POLLING_ENABLE, default=true" description:"Enable task status polling"`
	PollingInterval        time.Duration `env:"POLLING_INTERVAL, default=1s" description:"Interval between polling requests"`
	PollingTimeout         time.Duration `env:"POLLING_TIMEOUT, default=30s" description:"Maximum time to wait for task completion"`
	MaxPollAttempts        int           `env:"MAX_POLL_ATTEMPTS, default=30" description:"Maximum number of polling attempts"`
	MaxRetries             int           `env:"MAX_RETRIES, default=3" description:"Maximum number of connection retry attempts"`
	RetryInterval          time.Duration `env:"RETRY_INTERVAL, default=5s" description:"Interval between connection retry attempts"`
	InitialBackoff         time.Duration `env:"INITIAL_BACKOFF, default=1s" description:"Initial backoff duration for exponential backoff retry"`
	EnableReconnect        bool          `env:"ENABLE_RECONNECT, default=true" description:"Enable automatic reconnection for failed agents"`
	ReconnectInterval      time.Duration `env:"RECONNECT_INTERVAL, default=30s" description:"Interval between reconnection attempts"`
	DisableHealthcheckLogs bool          `env:"DISABLE_HEALTHCHECK_LOGS, default=true" description:"Disable health check log messages to reduce noise"`
}

A2A configuration

type AuthConfig added in v0.14.1

type AuthConfig struct {
	Enable           bool   `env:"ENABLE, default=false" description:"Enable authentication"`
	OidcIssuer       string `env:"OIDC_ISSUER, default=http://keycloak:8080/realms/inference-gateway-realm" description:"OIDC issuer URL"`
	OidcClientId     string `env:"OIDC_CLIENT_ID, default=inference-gateway-client" type:"secret" description:"OIDC client ID"`
	OidcClientSecret string `env:"OIDC_CLIENT_SECRET" type:"secret" description:"OIDC client secret"`
}

Authentication configuration

type ClientConfig added in v0.7.0

type ClientConfig struct {
	Timeout               time.Duration `env:"TIMEOUT, default=30s" description:"Client timeout"`
	MaxIdleConns          int           `env:"MAX_IDLE_CONNS, default=20" description:"Maximum idle connections"`
	MaxIdleConnsPerHost   int           `env:"MAX_IDLE_CONNS_PER_HOST, default=20" description:"Maximum idle connections per host"`
	IdleConnTimeout       time.Duration `env:"IDLE_CONN_TIMEOUT, default=30s" description:"Idle connection timeout"`
	TlsMinVersion         string        `env:"TLS_MIN_VERSION, default=TLS12" description:"Minimum TLS version"`
	DisableCompression    bool          `env:"DISABLE_COMPRESSION, default=true" description:"Disable compression for faster streaming"`
	ResponseHeaderTimeout time.Duration `env:"RESPONSE_HEADER_TIMEOUT, default=10s" description:"Response header timeout"`
	ExpectContinueTimeout time.Duration `env:"EXPECT_CONTINUE_TIMEOUT, default=1s" description:"Expect continue timeout"`
}

Client configuration

type Config

type Config struct {
	// General settings
	Environment   string `env:"ENVIRONMENT, default=production" description:"The environment"`
	AllowedModels string `env:"ALLOWED_MODELS" description:"Comma-separated list of models to allow. If empty, all models will be available"`
	// Telemetry settings
	Telemetry *TelemetryConfig `env:", prefix=TELEMETRY_" description:"Telemetry configuration"`
	// MCP settings
	MCP *MCPConfig `env:", prefix=MCP_" description:"MCP configuration"`
	// A2A settings
	A2A *A2AConfig `env:", prefix=A2A_" description:"A2A configuration"`
	// Authentication settings
	Auth *AuthConfig `env:", prefix=AUTH_" description:"Authentication configuration"`
	// Server settings
	Server *ServerConfig `env:", prefix=SERVER_" description:"Server configuration"`
	// Client settings
	Client *ClientConfig `env:", prefix=CLIENT_" description:"Client configuration"`

	// Providers map
	Providers map[providers.Provider]*providers.Config
}

Config holds the configuration for the Inference Gateway

func (*Config) Load

func (cfg *Config) Load(lookuper envconfig.Lookuper) (Config, error)

Load configuration

func (*Config) String added in v0.5.0

func (cfg *Config) String() string

The string representation of Config

type MCPConfig added in v0.7.0

type MCPConfig struct {
	Enable                 bool          `env:"ENABLE, default=false" description:"Enable MCP"`
	Expose                 bool          `env:"EXPOSE, default=false" description:"Expose MCP tools endpoint"`
	Servers                string        `env:"SERVERS" description:"List of MCP servers"`
	ClientTimeout          time.Duration `env:"CLIENT_TIMEOUT, default=5s" description:"MCP client HTTP timeout"`
	DialTimeout            time.Duration `env:"DIAL_TIMEOUT, default=3s" description:"MCP client dial timeout"`
	TlsHandshakeTimeout    time.Duration `env:"TLS_HANDSHAKE_TIMEOUT, default=3s" description:"MCP client TLS handshake timeout"`
	ResponseHeaderTimeout  time.Duration `env:"RESPONSE_HEADER_TIMEOUT, default=3s" description:"MCP client response header timeout"`
	ExpectContinueTimeout  time.Duration `env:"EXPECT_CONTINUE_TIMEOUT, default=1s" description:"MCP client expect continue timeout"`
	RequestTimeout         time.Duration `env:"REQUEST_TIMEOUT, default=5s" description:"MCP client request timeout for initialize and tool calls"`
	MaxRetries             int           `env:"MAX_RETRIES, default=3" description:"Maximum number of connection retry attempts"`
	RetryInterval          time.Duration `env:"RETRY_INTERVAL, default=5s" description:"Interval between connection retry attempts"`
	InitialBackoff         time.Duration `env:"INITIAL_BACKOFF, default=1s" description:"Initial backoff duration for exponential backoff retry"`
	EnableReconnect        bool          `env:"ENABLE_RECONNECT, default=true" description:"Enable automatic reconnection for failed servers"`
	ReconnectInterval      time.Duration `env:"RECONNECT_INTERVAL, default=30s" description:"Interval between reconnection attempts"`
	PollingEnable          bool          `env:"POLLING_ENABLE, default=true" description:"Enable health check polling"`
	PollingInterval        time.Duration `env:"POLLING_INTERVAL, default=30s" description:"Interval between health check polling requests"`
	PollingTimeout         time.Duration `env:"POLLING_TIMEOUT, default=5s" description:"Timeout for individual health check requests"`
	DisableHealthcheckLogs bool          `env:"DISABLE_HEALTHCHECK_LOGS, default=true" description:"Disable health check log messages to reduce noise"`
}

MCP configuration

type ServerConfig added in v0.1.6

type ServerConfig struct {
	Host         string        `env:"HOST, default=0.0.0.0" description:"Server host"`
	Port         string        `env:"PORT, default=8080" description:"Server port"`
	ReadTimeout  time.Duration `env:"READ_TIMEOUT, default=30s" description:"Read timeout"`
	WriteTimeout time.Duration `env:"WRITE_TIMEOUT, default=30s" description:"Write timeout"`
	IdleTimeout  time.Duration `env:"IDLE_TIMEOUT, default=120s" description:"Idle timeout"`
	TlsCertPath  string        `env:"TLS_CERT_PATH" description:"TLS certificate path"`
	TlsKeyPath   string        `env:"TLS_KEY_PATH" description:"TLS key path"`
}

Server configuration

type TelemetryConfig added in v0.14.0

type TelemetryConfig struct {
	Enable      bool   `env:"ENABLE, default=false" description:"Enable telemetry"`
	MetricsPort string `env:"METRICS_PORT, default=9464" description:"Port for telemetry metrics server"`
}

Telemetry configuration

Jump to

Keyboard shortcuts

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