evalvault 1.74.0__py3-none-any.whl → 1.76.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- evalvault/adapters/inbound/api/adapter.py +127 -80
- evalvault/adapters/inbound/api/routers/calibration.py +9 -9
- evalvault/adapters/inbound/api/routers/chat.py +303 -17
- evalvault/adapters/inbound/api/routers/config.py +3 -1
- evalvault/adapters/inbound/api/routers/domain.py +10 -5
- evalvault/adapters/inbound/api/routers/pipeline.py +3 -3
- evalvault/adapters/inbound/api/routers/runs.py +23 -4
- evalvault/adapters/inbound/cli/commands/analyze.py +10 -12
- evalvault/adapters/inbound/cli/commands/benchmark.py +10 -8
- evalvault/adapters/inbound/cli/commands/calibrate.py +2 -7
- evalvault/adapters/inbound/cli/commands/calibrate_judge.py +2 -7
- evalvault/adapters/inbound/cli/commands/compare.py +2 -7
- evalvault/adapters/inbound/cli/commands/debug.py +3 -2
- evalvault/adapters/inbound/cli/commands/domain.py +12 -12
- evalvault/adapters/inbound/cli/commands/experiment.py +9 -8
- evalvault/adapters/inbound/cli/commands/gate.py +3 -2
- evalvault/adapters/inbound/cli/commands/graph_rag.py +2 -2
- evalvault/adapters/inbound/cli/commands/history.py +3 -12
- evalvault/adapters/inbound/cli/commands/method.py +3 -4
- evalvault/adapters/inbound/cli/commands/ops.py +2 -2
- evalvault/adapters/inbound/cli/commands/pipeline.py +2 -2
- evalvault/adapters/inbound/cli/commands/profile_difficulty.py +3 -12
- evalvault/adapters/inbound/cli/commands/prompts.py +4 -18
- evalvault/adapters/inbound/cli/commands/regress.py +5 -4
- evalvault/adapters/inbound/cli/commands/run.py +188 -59
- evalvault/adapters/inbound/cli/commands/run_helpers.py +181 -70
- evalvault/adapters/inbound/cli/commands/stage.py +6 -25
- evalvault/adapters/inbound/cli/utils/options.py +10 -4
- evalvault/adapters/inbound/mcp/tools.py +11 -8
- evalvault/adapters/outbound/analysis/embedding_analyzer_module.py +17 -1
- evalvault/adapters/outbound/analysis/embedding_searcher_module.py +14 -0
- evalvault/adapters/outbound/domain_memory/__init__.py +8 -4
- evalvault/adapters/outbound/domain_memory/factory.py +68 -0
- evalvault/adapters/outbound/domain_memory/postgres_adapter.py +1062 -0
- evalvault/adapters/outbound/domain_memory/postgres_domain_memory_schema.sql +177 -0
- evalvault/adapters/outbound/llm/factory.py +1 -1
- evalvault/adapters/outbound/llm/vllm_adapter.py +23 -0
- evalvault/adapters/outbound/nlp/korean/dense_retriever.py +10 -7
- evalvault/adapters/outbound/nlp/korean/toolkit.py +15 -4
- evalvault/adapters/outbound/phoenix/sync_service.py +99 -0
- evalvault/adapters/outbound/retriever/pgvector_store.py +165 -0
- evalvault/adapters/outbound/storage/base_sql.py +3 -2
- evalvault/adapters/outbound/storage/factory.py +53 -0
- evalvault/adapters/outbound/storage/postgres_schema.sql +2 -0
- evalvault/adapters/outbound/tracker/mlflow_adapter.py +209 -54
- evalvault/adapters/outbound/tracker/phoenix_adapter.py +158 -9
- evalvault/config/instrumentation.py +8 -6
- evalvault/config/phoenix_support.py +5 -0
- evalvault/config/settings.py +71 -11
- evalvault/domain/services/domain_learning_hook.py +2 -1
- evalvault/domain/services/evaluator.py +2 -0
- evalvault/ports/inbound/web_port.py +3 -1
- evalvault/ports/outbound/storage_port.py +2 -0
- evalvault-1.76.0.dist-info/METADATA +221 -0
- {evalvault-1.74.0.dist-info → evalvault-1.76.0.dist-info}/RECORD +58 -53
- evalvault-1.74.0.dist-info/METADATA +0 -585
- {evalvault-1.74.0.dist-info → evalvault-1.76.0.dist-info}/WHEEL +0 -0
- {evalvault-1.74.0.dist-info → evalvault-1.76.0.dist-info}/entry_points.txt +0 -0
- {evalvault-1.74.0.dist-info → evalvault-1.76.0.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import logging
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
from typing import TYPE_CHECKING
|
|
6
|
+
|
|
7
|
+
from evalvault.adapters.outbound.domain_memory.postgres_adapter import PostgresDomainMemoryAdapter
|
|
8
|
+
from evalvault.adapters.outbound.domain_memory.sqlite_adapter import SQLiteDomainMemoryAdapter
|
|
9
|
+
|
|
10
|
+
if TYPE_CHECKING:
|
|
11
|
+
from evalvault.config.settings import Settings
|
|
12
|
+
from evalvault.ports.outbound.domain_memory_port import DomainMemoryPort
|
|
13
|
+
|
|
14
|
+
logger = logging.getLogger(__name__)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def build_domain_memory_adapter(
|
|
18
|
+
*,
|
|
19
|
+
settings: Settings | None = None,
|
|
20
|
+
db_path: Path | None = None,
|
|
21
|
+
fallback_to_sqlite: bool = True,
|
|
22
|
+
) -> DomainMemoryPort:
|
|
23
|
+
"""Build domain memory adapter based on settings and parameters.
|
|
24
|
+
|
|
25
|
+
Args:
|
|
26
|
+
settings: Application settings (uses default if None)
|
|
27
|
+
db_path: Explicit SQLite database path (forces SQLite if provided)
|
|
28
|
+
fallback_to_sqlite: Fall back to SQLite if Postgres fails
|
|
29
|
+
|
|
30
|
+
Returns:
|
|
31
|
+
DomainMemoryPort implementation (Postgres by default, SQLite if specified)
|
|
32
|
+
"""
|
|
33
|
+
from evalvault.config.settings import Settings
|
|
34
|
+
|
|
35
|
+
resolved_settings = settings or Settings()
|
|
36
|
+
|
|
37
|
+
if db_path is not None:
|
|
38
|
+
return SQLiteDomainMemoryAdapter(db_path=db_path)
|
|
39
|
+
|
|
40
|
+
backend = getattr(resolved_settings, "db_backend", "postgres")
|
|
41
|
+
if backend == "sqlite":
|
|
42
|
+
resolved_db_path = resolved_settings.evalvault_memory_db_path
|
|
43
|
+
if resolved_db_path is None:
|
|
44
|
+
raise RuntimeError("SQLite backend selected but evalvault_memory_db_path is not set.")
|
|
45
|
+
return SQLiteDomainMemoryAdapter(db_path=resolved_db_path)
|
|
46
|
+
|
|
47
|
+
conn_string = resolved_settings.postgres_connection_string
|
|
48
|
+
if not conn_string:
|
|
49
|
+
host = resolved_settings.postgres_host or "localhost"
|
|
50
|
+
port = resolved_settings.postgres_port
|
|
51
|
+
database = resolved_settings.postgres_database
|
|
52
|
+
user = resolved_settings.postgres_user or "postgres"
|
|
53
|
+
password = resolved_settings.postgres_password or ""
|
|
54
|
+
conn_string = f"host={host} port={port} dbname={database} user={user} password={password}"
|
|
55
|
+
|
|
56
|
+
try:
|
|
57
|
+
return PostgresDomainMemoryAdapter(connection_string=conn_string)
|
|
58
|
+
except Exception as exc:
|
|
59
|
+
if not fallback_to_sqlite:
|
|
60
|
+
raise
|
|
61
|
+
logger.warning("PostgreSQL domain memory adapter failed (%s). Falling back to SQLite.", exc)
|
|
62
|
+
resolved_db_path = resolved_settings.evalvault_memory_db_path
|
|
63
|
+
if resolved_db_path is None:
|
|
64
|
+
raise
|
|
65
|
+
return SQLiteDomainMemoryAdapter(db_path=resolved_db_path)
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
__all__ = ["build_domain_memory_adapter"]
|