Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 5 additions & 7 deletions src/everos/component/embedding/factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,22 +7,19 @@
from .openai_provider import OpenAIEmbeddingProvider
from .protocol import EmbeddingProvider

# Vector dim for the LanceDB index column — see ``17_lancedb_tables_design.md``.
_DEFAULT_DIM = 1024


def build_embedding_provider(
settings: EmbeddingSettings,
*,
dim: int = _DEFAULT_DIM,
dim: int | None = None,
) -> EmbeddingProvider:
"""Build an OpenAI-compatible embedding provider from settings.

Args:
settings: The :class:`EmbeddingSettings` slice from
:func:`everos.config.load_settings`.
dim: Target vector dimension; defaults to 1024 to match the
LanceDB ``vector`` column shape.
dim: Optional target vector dimension. When omitted, the dimension
from ``settings.dim`` is used.

Returns:
An :class:`EmbeddingProvider` ready to call ``embed`` /
Expand All @@ -45,11 +42,12 @@ def build_embedding_provider(
raise ValueError(
"Embedding base_url is not configured (set EVEROS_EMBEDDING__BASE_URL)"
)
effective_dim = dim if dim is not None else settings.dim
return OpenAIEmbeddingProvider(
model=settings.model,
api_key=api_key,
base_url=settings.base_url,
dim=dim,
dim=effective_dim,
timeout=settings.timeout_seconds,
max_retries=settings.max_retries,
batch_size=settings.batch_size,
Expand Down
3 changes: 3 additions & 0 deletions src/everos/config/default.toml
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,9 @@ timeout_seconds = 30.0
max_retries = 3
batch_size = 10
max_concurrent = 5
# Vector dimension used by LanceDB vector columns and the embedding provider.
# Override via EVEROS_EMBEDDING__DIM.
dim = 1024

[rerank]
# Rerank provider. Override via env:
Expand Down
2 changes: 2 additions & 0 deletions src/everos/config/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -180,6 +180,7 @@ class EmbeddingSettings(BaseModel):
EVEROS_EMBEDDING__MAX_RETRIES
EVEROS_EMBEDDING__BATCH_SIZE
EVEROS_EMBEDDING__MAX_CONCURRENT
EVEROS_EMBEDDING__DIM
"""

model: str | None = None
Expand All @@ -189,6 +190,7 @@ class EmbeddingSettings(BaseModel):
max_retries: int = Field(default=3, ge=0)
batch_size: int = Field(default=10, ge=1)
max_concurrent: int = Field(default=5, ge=1)
dim: int = Field(default=1024, gt=0)


class RerankSettings(BaseModel):
Expand Down
4 changes: 3 additions & 1 deletion src/everos/infra/persistence/lancedb/tables/agent_case.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@

from __future__ import annotations

from everos.config.settings import load_settings

import datetime as _dt
from typing import ClassVar

from everos.core.persistence.lancedb import BaseLanceTable, Vector

from ._parent_type import ParentType

_DIM = 1024
_DIM = load_settings().embedding.dim


class AgentCase(BaseLanceTable):
Expand Down
4 changes: 3 additions & 1 deletion src/everos/infra/persistence/lancedb/tables/agent_skill.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@

from __future__ import annotations

from everos.config.settings import load_settings

from typing import ClassVar

from everos.core.persistence.lancedb import BaseLanceTable, Vector

_DIM = 1024
_DIM = load_settings().embedding.dim


class AgentSkill(BaseLanceTable):
Expand Down
4 changes: 3 additions & 1 deletion src/everos/infra/persistence/lancedb/tables/atomic_fact.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,16 @@

from __future__ import annotations

from everos.config.settings import load_settings

import datetime as _dt
from typing import ClassVar

from everos.core.persistence.lancedb import BaseLanceTable, Vector

from ._parent_type import ParentType

_DIM = 1024
_DIM = load_settings().embedding.dim


class AtomicFact(BaseLanceTable):
Expand Down
4 changes: 3 additions & 1 deletion src/everos/infra/persistence/lancedb/tables/episode.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

from __future__ import annotations

from everos.config.settings import load_settings

import datetime as _dt
from typing import ClassVar

Expand All @@ -16,7 +18,7 @@

# Vector dimension is settings-managed at runtime; the class-level
# constant pins the schema dim used at table creation.
_DIM = 1024
_DIM = load_settings().embedding.dim


class Episode(BaseLanceTable):
Expand Down
4 changes: 3 additions & 1 deletion src/everos/infra/persistence/lancedb/tables/foresight.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,16 @@

from __future__ import annotations

from everos.config.settings import load_settings

import datetime as _dt
from typing import ClassVar

from everos.core.persistence.lancedb import BaseLanceTable, Vector

from ._parent_type import ParentType

_DIM = 1024
_DIM = load_settings().embedding.dim


class Foresight(BaseLanceTable):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

from __future__ import annotations

from everos.config.settings import load_settings

import datetime as dt
from typing import ClassVar

from everos.core.persistence.lancedb import BaseLanceTable, Vector

_DIM = 1024
_DIM = load_settings().embedding.dim


class KnowledgeTopic(BaseLanceTable):
Expand Down