vd.config#
Configuration management for vd.
Provides support for configuration files (YAML, TOML), environment variables, and configuration profiles for managing backend connections.
Functions
|
Apply environment variable overrides to configuration. |
|
Connect to a backend using configuration from a file. |
|
Generate an example configuration file content. |
|
Get a specific profile from configuration. |
|
Load configuration from a file. |
|
Load configuration from a TOML file. |
|
Load configuration from a YAML file. |
|
Save configuration to a file. |
- vd.config.apply_env_overrides(config)[source]#
Apply environment variable overrides to configuration.
Looks for environment variables with the VD_ prefix:
VD_BACKEND: Override backend name
VD_EMBEDDING_MODEL: Override embedding model
- Parameters:
config (
dict) – Configuration dictionary- Returns:
Configuration with environment overrides applied
- Return type:
Examples
>>> import os >>> os.environ['VD_BACKEND'] = 'chroma' >>> config = apply_env_overrides({'backend': 'memory'}) >>> config['backend'] 'chroma'
- vd.config.connect_from_config(path=None, *, profile=None, apply_env=True, embedder=None, **overrides)[source]#
Connect to a backend using configuration from a file.
- Parameters:
path (
Union[str,Path,None]) – Path to configuration file. If not provided, searches for default config files.profile (
Optional[str]) – Profile name to use from configuration. Defaults to ‘default’ or the VD_PROFILE environment variable.apply_env (
bool) – Whether to apply environment variable overridesembedder (
Optional[Callable[[str],list[float]]]) – Optionaltext -> vectorconvenience embedder, passed tovd.connect(). A vd config file describes the *backend connection*, not embedding — embedding stays the caller’s concern.**overrides – Additional keyword arguments to override configuration values
- Returns:
Connected client instance
- Return type:
Examples
>>> # With a config file >>> client = connect_from_config('vd.yaml')
>>> # With a specific profile >>> client = connect_from_config('vd.yaml', profile='production')
>>> # With environment variable VD_PROFILE=dev >>> client = connect_from_config()
>>> # With overrides >>> client = connect_from_config('vd.yaml', persist_directory='./data')
- vd.config.create_example_config(format='yaml')[source]#
Generate an example configuration file content.
- Parameters:
format (
str) – Format of configuration: ‘yaml’ or ‘toml’- Returns:
Example configuration as a string
- Return type:
Examples
>>> yaml_config = create_example_config('yaml') >>> print(yaml_config) >>> toml_config = create_example_config('toml')
- vd.config.get_profile(config, profile=None)[source]#
Get a specific profile from configuration.
- Parameters:
- Returns:
Profile configuration
- Return type:
Examples
>>> config = {'profiles': {'dev': {'backend': 'memory'}, 'prod': {'backend': 'chroma'}}} >>> dev_config = get_profile(config, 'dev') >>> prod_config = get_profile(config, 'prod')
- vd.config.load_config(path=None, *, format=None)[source]#
Load configuration from a file.
Automatically detects format from file extension if not specified.
- Parameters:
- Returns:
Configuration dictionary
- Return type:
Examples
>>> config = load_config('vd.yaml') >>> config = load_config('vd.toml') >>> config = load_config() # Looks for default config files
- vd.config.load_toml_config(path)[source]#
Load configuration from a TOML file.
- Parameters:
- Returns:
Configuration dictionary
- Return type:
- Raises:
ImportError – If tomli/tomllib is not available
FileNotFoundError – If configuration file doesn’t exist
- vd.config.load_yaml_config(path)[source]#
Load configuration from a YAML file.
- Parameters:
- Returns:
Configuration dictionary
- Return type:
- Raises:
ImportError – If PyYAML is not installed
FileNotFoundError – If configuration file doesn’t exist
- vd.config.save_config(config, path, *, format=None)[source]#
Save configuration to a file.
- Parameters:
- Return type:
Examples
>>> config = { ... 'profiles': { ... 'dev': {'backend': 'memory'}, ... 'prod': {'backend': 'chroma', 'persist_directory': './data'} ... } ... } >>> save_config(config, 'vd.yaml')