---
title: vectors | CodeWeaver Docs
description: API reference for codeweaver.providers.types.vectors
url: "https://docs.knitli.com/api/providers/types/vectors"
type: static
generatedAt: "2026-04-17T17:21:09.408Z"
---

# vectors
       [Open in ChatGPT](https://chatgpt.com/?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[Open in Claude](https://claude.ai/new?q=Read%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F.%20I%20want%20to%20ask%20questions%20about%20it.)[View in Markdown](/codeweaver/api/providers/types/vectors.md)       [Share on LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F)[Share on X](https://x.com/intent/tweet?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F&text=vectors)[Share on Threads](https://threads.net/intent/post?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F&text=vectors)[Share on Bluesky](https://bsky.app/intent/compose?text=vectors%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F)[Share on Facebook](https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F)[Share on Reddit](https://reddit.com/submit?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F&title=vectors)[Share on Hacker News](https://news.ycombinator.com/submitlink?u=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F&t=vectors)[Share on Email](mailto:?subject=vectors&body=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F)[Share on WhatsApp](https://wa.me/?text=vectors%20https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F)[Share on Telegram](https://t.me/share/url?url=https%3A%2F%2Fdocs.knitli.com%2Fcodeweaver%2Fapi%2Fproviders%2Ftypes%2Fvectors%2F&text=vectors)
# `codeweaver.providers.types.vectors`
[Section titled “codeweaver.providers.types.vectors”](#codeweaverproviderstypesvectors)
Vector configuration types for Qdrant integration.

## Class: `VectorConfig`
[Section titled “Class: VectorConfig”](#class-vectorconfig)
Immutable configuration for a single named vector in Qdrant.

Aligns directly with Qdrant’s vector configuration while adding minimal metadata for generation and identification.

Attributes: name: Physical Qdrant vector name (e.g., “primary”, “backup”, “sparse”) Should reflect the vector’s purpose/role, not the model. model_name: Model used to generate this vector (metadata for generation) params: Direct Qdrant VectorParams or SparseVectorParams role: Optional semantic role (defaults to name if not provided)

Example: >>> config = VectorConfig( … name=“primary”, … model_name=ModelName(“voyage-code-3”), … params=VectorParams(size=1024, distance=“Cosine”), … role=VectorRole.PRIMARY, … )

### Method: `from_provider_settings`
[Section titled “Method: from_provider_settings”](#method-from_provider_settings)

**

```
from_provider_settings()
```

Create VectorConfig from provider settings.

Args: config: Provider settings (embedding or sparse) name: Physical Qdrant vector name (REQUIRED, purpose-based) e.g., “primary”, “backup”, “sparse”, “semantic_code” role: Optional semantic role (defaults to name)

Returns: Configured VectorConfig instance

Example: >>> from codeweaver.providers.config.categories import EmbeddingProviderSettings >>> settings = EmbeddingProviderSettings(…) >>> config = await VectorConfig.from_provider_settings( … settings, name=“primary”, role=VectorRole.PRIMARY … )

### Method: `to_qdrant_config`
[Section titled “Method: to_qdrant_config”](#method-to_qdrant_config)

**

```
to_qdrant_config()
```

Return (name, params) tuple for Qdrant collection config.

Returns: Tuple of (physical_vector_name, vector_params) ready for Qdrant’s vectors_config or sparse_vectors_config dict.

Example: >>> config = VectorConfig(name=“primary”, …) >>> name, params = config.to_qdrant_config() >>> collection_config = CollectionParams(vectors_config={name: params})

## Class: `VectorRole`
[Section titled “Class: VectorRole”](#class-vectorrole)
Semantic roles for vectors (extensible for future strategies).

The enum values should match common physical vector names by default. Use .variable property to get snake_case string representation.

Example: >>> VectorRole.PRIMARY.variable ‘primary’ >>> VectorRole.BACKUP.variable ‘backup’

Future extensions might include:

 - SEMANTIC_CODE: “semantic_code”
 - SEMANTIC_DOCS: “semantic_docs”
 - KEYWORD: “keyword”

## Class: `VectorSet`
[Section titled “Class: VectorSet”](#class-vectorset)
Immutable collection of vectors for a search/indexing strategy.

Manages multiple named vectors with flexible organization. Vectors can be keyed by strategy name, intent, or any identifier. Provides query methods and conversion to Qdrant collection configuration.

Attributes: vectors: Dict of VectorConfig keyed by logical identifier (e.g., “primary”, “backup”, “sparse”, “semantic_v1”)

Example: >>> vector_set = VectorSet(vectors={ … “primary”: VectorConfig(name=“primary”, …), … “backup”: VectorConfig(name=“backup”, …), … “sparse”: VectorConfig(name=“sparse”, …), … }) >>> >>> # Convert to Qdrant config >>> vectors_config = vector_set.to_qdrant_vectors_config() >>> sparse_config = vector_set.to_qdrant_sparse_vectors_config()

### Method: `backup`
[Section titled “Method: backup”](#method-backup)

**

```
backup()
```

Get backup dense vector (common case).

Returns first vector with BACKUP role, or None.

### Method: `by_key`
[Section titled “Method: by_key”](#method-by_key)

**

```
by_key()
```

Get vector by its logical dict key.

Args: key: Logical identifier used in vectors dict

Returns: Matching VectorConfig or None

### Method: `by_name`
[Section titled “Method: by_name”](#method-by_name)

**

```
by_name()
```

Get vector by its physical Qdrant name.

Args: name: Physical vector name (e.g., “primary”, “backup”)

Returns: Matching VectorConfig or None

### Method: `by_role`
[Section titled “Method: by_role”](#method-by_role)

**

```
by_role()
```

Get all vectors with a specific role.

Supports multiple vectors with the same role for future multi-strategy support.

Args: role: VectorRole enum or string role name

Returns: List of matching VectorConfigs (may be empty)

Example: >>> primaries = vector_set.by_role(VectorRole.PRIMARY) >>> backups = vector_set.by_role(“backup”)

### Method: `default`
[Section titled “Method: default”](#method-default)

**

```
default()
```

Create default VectorSet with recommended configuration.

Returns: VectorSet with recommended profile configuration

### Method: `dense_vectors`
[Section titled “Method: dense_vectors”](#method-dense_vectors)

**

```
dense_vectors()
```

Get all dense vectors.

Returns: Dict of dense VectorConfigs (preserves keys)

### Method: `from_profile`
[Section titled “Method: from_profile”](#method-from_profile)

**

```
from_profile()
```

Create VectorSet from provider profile.

Creates standard layout with primary, backup (optional), and sparse (optional) vectors based on profile configuration. Uses role-based physical vector names.

Args: profile: Provider profile with embedding configurations

Returns: Configured VectorSet with standard layout

Example: >>> from codeweaver.providers.config.profiles import ProviderProfile >>> vector_set = await VectorSet.from_profile(ProviderProfile.RECOMMENDED)

### Method: `primary`
[Section titled “Method: primary”](#method-primary)

**

```
primary()
```

Get primary dense vector (common case).

Returns first vector with PRIMARY role, or None.

### Method: `sparse`
[Section titled “Method: sparse”](#method-sparse)

**

```
sparse()
```

Get sparse vector (common case).

Returns first vector with SPARSE role, or None.

### Method: `sparse_vectors`
[Section titled “Method: sparse_vectors”](#method-sparse_vectors)

**

```
sparse_vectors()
```

Get all sparse vectors.

Returns: Dict of SparseVectorConfigs (preserves keys)

### Method: `to_qdrant_sparse_vectors_config`
[Section titled “Method: to_qdrant_sparse_vectors_config”](#method-to_qdrant_sparse_vectors_config)

**

```
to_qdrant_sparse_vectors_config()
```

Generate Qdrant sparse_vectors_config dict for sparse vectors.

Returns: Dict mapping physical vector names to SparseVectorParams, ready for CollectionConfig.sparse_vectors_config

Example: >>> config = CollectionParams( … sparse_vectors_config=vector_set.to_qdrant_sparse_vectors_config() … )

### Method: `to_qdrant_vectors_config`
[Section titled “Method: to_qdrant_vectors_config”](#method-to_qdrant_vectors_config)

**

```
to_qdrant_vectors_config()
```

Generate Qdrant vectors_config dict for dense vectors.

Returns: Dict mapping physical vector names to VectorParams, ready for CollectionConfig.vectors_config

Example: >>> config = CollectionParams(vectors_config=vector_set.to_qdrant_vectors_config())