config

package
v0.7.3 Latest Latest
Warning

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

Go to latest
Published: Dec 3, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultTextCollection  = "WeaveDocs"
	DefaultImageCollection = "WeaveImages"
	DefaultDatabaseType    = "weaviate-cloud"
	DefaultLocalURL        = "http://localhost:8080"
	DefaultBatchWorkers    = 3
	DefaultRetryAttempts   = 3
	DefaultLLMModel        = "gpt-4o"
	DefaultLLMTimeout      = 300
	DefaultBatchChunkSize  = 500
	DefaultImageQuality    = 85
	DefaultMaxImageSize    = 2048
	DefaultEmbeddingDim    = 384
	DefaultTimeout         = 10 // Default timeout in seconds for vector DB operations
)

Default configuration values

View Source
const (
	// GlobalConfigDirName is the directory name for global config
	GlobalConfigDirName = ".weave-cli"
	// EnvFileName is the name of the environment file
	EnvFileName = ".env"
	// ConfigFileName is the name of the YAML config file
	ConfigFileName = "config.yaml"
)

Variables

This section is empty.

Functions

func EnsureGlobalConfigDir added in v0.3.12

func EnsureGlobalConfigDir() (bool, error)

EnsureGlobalConfigDir creates ~/.weave-cli directory if it doesn't exist Returns true if directory was created, false if it already existed

func FormatConfigError added in v0.3.6

func FormatConfigError(err error) string

FormatConfigError formats a configuration error with helpful tips

func GetConfigFile

func GetConfigFile() string

GetConfigFile returns the path to the config file being used

func GetEnvFile

func GetEnvFile() string

GetEnvFile returns the path to the env file being used

func GetGlobalConfigDir added in v0.3.12

func GetGlobalConfigDir() (string, error)

GetGlobalConfigDir returns the path to ~/.weave-cli directory

func GetGlobalConfigPath added in v0.3.12

func GetGlobalConfigPath() (string, error)

GetGlobalConfigPath returns the path to ~/.weave-cli/config.yaml

func GetGlobalEnvPath added in v0.3.12

func GetGlobalEnvPath() (string, error)

GetGlobalEnvPath returns the path to ~/.weave-cli/.env

func HasGlobalConfig added in v0.3.12

func HasGlobalConfig() (bool, error)

HasGlobalConfig returns true if global .env or config.yaml exists

func HasLocalConfig added in v0.3.12

func HasLocalConfig() bool

HasLocalConfig returns true if local .env or config.yaml exists

func InteractiveConfigFix added in v0.3.6

func InteractiveConfigFix(envFileExists bool) error

InteractiveConfigFix runs the interactive configuration fix process

func InterpolateString

func InterpolateString(s string) string

InterpolateString interpolates environment variables in a string

func PromptToFixConfig added in v0.3.6

func PromptToFixConfig(err *ConfigError) (bool, error)

PromptToFixConfig prompts the user to fix configuration interactively

Types

type Collection added in v0.0.4

type Collection struct {
	Name        string `yaml:"name"`
	Type        string `yaml:"type"`
	Description string `yaml:"description,omitempty"`
}

Collection represents a collection configuration

type Config

type Config struct {
	Databases  DatabasesConfig `yaml:"databases"`
	SchemasDir string          `yaml:"schemas_dir,omitempty"`
}

Config holds the complete application configuration

func LoadConfig

func LoadConfig(configFile, envFile string) (*Config, error)

func LoadConfigWithOptions added in v0.1.6

func LoadConfigWithOptions(opts LoadConfigOptions) (*Config, error)

func (*Config) GetAllSchemas added in v0.2.6

func (c *Config) GetAllSchemas() []SchemaDefinition

GetAllSchemas returns all configured schema definitions

func (*Config) GetDatabase added in v0.0.4

func (c *Config) GetDatabase(name string) (*VectorDBConfig, error)

GetDatabase returns a specific vector database configuration by name Supports shortcut names that resolve to -cloud variants:

weaviate -> weaviate-cloud
milvus -> milvus-cloud
chroma -> chroma-cloud
neo4j -> neo4j-cloud
qdrant -> qdrant-cloud

func (*Config) GetDatabaseNames added in v0.0.4

func (c *Config) GetDatabaseNames() map[string]VectorDBType

GetDatabaseNames returns a map of database names to their types

func (*Config) GetDefaultDatabase added in v0.0.4

func (c *Config) GetDefaultDatabase() (*VectorDBConfig, error)

GetDefaultDatabase returns the default vector database configuration

func (*Config) GetSchema added in v0.2.5

func (c *Config) GetSchema(name string) (*SchemaDefinition, error)

GetSchema returns a specific schema definition by name

func (*Config) ListDatabases added in v0.0.4

func (c *Config) ListDatabases() []string

ListDatabases returns a list of all configured database names

func (*Config) ListSchemas added in v0.2.5

func (c *Config) ListSchemas() []string

ListSchemas returns a list of all configured schema names

type ConfigError added in v0.3.6

type ConfigError struct {
	Message          string
	MissingVars      []string
	EnvFileExists    bool
	ConfigFileExists bool
	Tips             []string
}

ConfigError represents a configuration error with helpful information

func CheckREPLRequiredEnvVars added in v0.3.6

func CheckREPLRequiredEnvVars() *ConfigError

CheckREPLRequiredEnvVars checks if REPL-specific environment variables are set

func CheckRequiredEnvVars added in v0.3.6

func CheckRequiredEnvVars() *ConfigError

CheckRequiredEnvVars checks if required environment variables are set

func (*ConfigError) Error added in v0.3.6

func (e *ConfigError) Error() string

Error implements the error interface

type ConfigPaths added in v0.3.12

type ConfigPaths struct {
	EnvPath    string
	ConfigPath string
	Location   string // "local" or "global"
}

ConfigPaths holds the paths to configuration files

func FindConfigPaths added in v0.3.12

func FindConfigPaths() (*ConfigPaths, error)

FindConfigPaths finds configuration files with proper precedence: 1. Local directory (current working directory) 2. Global directory (~/.weave-cli)

type DatabasesConfig added in v0.0.4

type DatabasesConfig struct {
	Default         string             `yaml:"default"`
	VectorDatabases []VectorDBConfig   `yaml:"vector_databases"`
	Schemas         []SchemaDefinition `yaml:"schemas,omitempty"`
}

DatabasesConfig holds multiple databases configuration

type LoadConfigOptions added in v0.1.6

type LoadConfigOptions struct {
	ConfigFile     string
	EnvFile        string
	VectorDBType   string
	WeaviateAPIKey string
	WeaviateURL    string
	Timeout        string // Timeout as duration string (e.g., "5s", "10s") or empty for default
}

LoadConfig loads configuration from files and environment variables LoadConfigOptions holds options for loading configuration

type MockCollection

type MockCollection struct {
	Name        string `yaml:"name"`
	Type        string `yaml:"type"`
	Description string `yaml:"description"`
}

MockCollection represents a mock collection (for backward compatibility)

type MockConfig

type MockConfig struct {
	Enabled            bool             `yaml:"enabled"`
	SimulateEmbeddings bool             `yaml:"simulate_embeddings"`
	EmbeddingDimension int              `yaml:"embedding_dimension"`
	Collections        []MockCollection `yaml:"collections"`
}

MockConfig holds mock database configuration (for backward compatibility)

type SchemaDefinition added in v0.2.5

type SchemaDefinition struct {
	Name     string                 `yaml:"name"`
	Schema   map[string]interface{} `yaml:"schema"`
	Metadata map[string]interface{} `yaml:"metadata,omitempty"`
}

SchemaDefinition represents a named schema that can be used to create collections

type VectorDBConfig

type VectorDBConfig struct {
	Name               string       `yaml:"name"`
	Type               VectorDBType `yaml:"type"`
	URL                string       `yaml:"url,omitempty"`
	APIKey             string       `yaml:"api_key,omitempty"`
	DatabaseURL        string       `yaml:"database_url,omitempty"`      // For Supabase
	DatabaseKey        string       `yaml:"database_key,omitempty"`      // For Supabase
	Database           string       `yaml:"database,omitempty"`          // For MongoDB, Milvus, Chroma
	Tenant             string       `yaml:"tenant,omitempty"`            // For Chroma Cloud
	VectorDimensions   int          `yaml:"vector_dimensions,omitempty"` // For MongoDB, Milvus
	SimilarityMetric   string       `yaml:"similarity_metric,omitempty"` // For MongoDB, Milvus
	Address            string       `yaml:"address,omitempty"`           // For Milvus
	Username           string       `yaml:"username,omitempty"`          // For Milvus Cloud
	Password           string       `yaml:"password,omitempty"`          // For Milvus Cloud
	OpenAIAPIKey       string       `yaml:"openai_api_key,omitempty"`
	Timeout            int          `yaml:"timeout,omitempty"` // Timeout in seconds for DB operations
	Enabled            bool         `yaml:"enabled,omitempty"`
	SimulateEmbeddings bool         `yaml:"simulate_embeddings,omitempty"`
	EmbeddingDimension int          `yaml:"embedding_dimension,omitempty"`
	Collections        []Collection `yaml:"collections"`
}

VectorDBConfig holds vector database configuration

type VectorDBType

type VectorDBType string

VectorDBType represents the type of vector database

const (
	VectorDBTypeCloud         VectorDBType = "weaviate-cloud"
	VectorDBTypeLocal         VectorDBType = "weaviate-local"
	VectorDBTypeMock          VectorDBType = "mock"
	VectorDBTypeSupabase      VectorDBType = "supabase" // Legacy
	VectorDBTypeSupabaseCloud VectorDBType = "supabase-cloud"
	VectorDBTypeMongoDB       VectorDBType = "mongodb" // Legacy
	VectorDBTypeMongoDBCloud  VectorDBType = "mongodb-cloud"
	VectorDBTypeMilvusLocal   VectorDBType = "milvus-local"
	VectorDBTypeMilvusCloud   VectorDBType = "milvus-cloud"
	VectorDBTypeChromaLocal   VectorDBType = "chroma-local"
	VectorDBTypeChromaCloud   VectorDBType = "chroma-cloud"
	VectorDBTypeQdrantLocal   VectorDBType = "qdrant-local"
	VectorDBTypeQdrantCloud   VectorDBType = "qdrant-cloud"
	VectorDBTypeNeo4jLocal    VectorDBType = "neo4j-local"
	VectorDBTypeNeo4jCloud    VectorDBType = "neo4j-cloud"
)

Jump to

Keyboard shortcuts

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