feat: make embedding model configurable for semantic search

- Add SemanticSearchConfig to settings.py with embedding model options
- Update WorldMapper to accept embedding_model parameter
- Update main.py to pass model from config to WorldMapper
- Add documentation for available embedding models:
  - sentence-transformers/all-MiniLM-L6-v2 (default, fast)
  - sentence-transformers/all-mpnet-base-v2 (better quality)
  - google/embeddinggemma-300m (state-of-the-art)
- Update config.yaml and config.example.yaml with new options

Users can now choose the best embedding model for their needs.
This commit is contained in:
truetype committed 2026-02-09 11:01:29 +01:00
1 parent b9f21c7199
commit 9a113002d4
5 files changed
+44 -26

No files matched your search

+24 -18
View File
@@ -51,24 +51,30 @@ class AIConfig(BaseModel):
llm: LLMProviderConfig = Field(default_factory=LLMProviderConfig)
class MapperConfig(BaseModel):
"""Mapper configuration"""
class ActiveStorageConfig(BaseModel):
db_path: str = "data/maps/active/world.db"
graph_cache_size: int = 10000
class HistoricalStorageConfig(BaseModel):
archive_dir: str = "data/maps/archive"
class SnapshotTriggers(BaseModel):
room_count: int = 500
session_end: bool = True
time_interval_hours: int = 24
snapshot_triggers: SnapshotTriggers = Field(default_factory=SnapshotTriggers)
active_storage: ActiveStorageConfig = Field(default_factory=ActiveStorageConfig)
historical_storage: HistoricalStorageConfig = Field(default_factory=HistoricalStorageConfig)
class MapperConfig(BaseModel):
"""Mapper configuration"""
class ActiveStorageConfig(BaseModel):
db_path: str = "data/maps/active/world.db"
graph_cache_size: int = 10000
class HistoricalStorageConfig(BaseModel):
archive_dir: str = "data/maps/archive"
class SnapshotTriggers(BaseModel):
room_count: int = 500
session_end: bool = True
time_interval_hours: int = 24
snapshot_triggers: SnapshotTriggers = Field(default_factory=SnapshotTriggers)
class SemanticSearchConfig(BaseModel):
model: str = "sentence-transformers/all-MiniLM-L6-v2"
top_k: int = 5
similarity_threshold: float = 0.7
active_storage: ActiveStorageConfig = Field(default_factory=ActiveStorageConfig)
historical_storage: HistoricalStorageConfig = Field(default_factory=HistoricalStorageConfig)
semantic_search: SemanticSearchConfig = Field(default_factory=SemanticSearchConfig)
class BehaviorConfig(BaseModel):