databao-context-engine 0.1.2__py3-none-any.whl → 0.1.3__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.
- databao_context_engine/__init__.py +18 -6
- databao_context_engine/build_sources/__init__.py +4 -0
- databao_context_engine/build_sources/{internal/build_runner.py → build_runner.py} +27 -23
- databao_context_engine/build_sources/build_service.py +53 -0
- databao_context_engine/build_sources/build_wiring.py +84 -0
- databao_context_engine/build_sources/export_results.py +41 -0
- databao_context_engine/build_sources/{internal/plugin_execution.py → plugin_execution.py} +3 -7
- databao_context_engine/cli/add_datasource_config.py +41 -15
- databao_context_engine/cli/commands.py +12 -43
- databao_context_engine/cli/info.py +2 -2
- databao_context_engine/databao_context_engine.py +137 -0
- databao_context_engine/databao_context_project_manager.py +96 -6
- databao_context_engine/datasources/add_config.py +34 -0
- databao_context_engine/{datasource_config → datasources}/check_config.py +18 -7
- databao_context_engine/datasources/datasource_context.py +93 -0
- databao_context_engine/{project → datasources}/datasource_discovery.py +17 -16
- databao_context_engine/{project → datasources}/types.py +64 -15
- databao_context_engine/init_project.py +25 -3
- databao_context_engine/introspection/property_extract.py +59 -30
- databao_context_engine/llm/errors.py +2 -8
- databao_context_engine/llm/install.py +13 -20
- databao_context_engine/llm/service.py +1 -3
- databao_context_engine/mcp/all_results_tool.py +2 -2
- databao_context_engine/mcp/mcp_runner.py +4 -2
- databao_context_engine/mcp/mcp_server.py +1 -4
- databao_context_engine/mcp/retrieve_tool.py +3 -11
- databao_context_engine/plugin_loader.py +111 -0
- databao_context_engine/pluginlib/build_plugin.py +25 -9
- databao_context_engine/pluginlib/config.py +16 -2
- databao_context_engine/plugins/databases/athena_introspector.py +85 -22
- databao_context_engine/plugins/databases/base_introspector.py +5 -3
- databao_context_engine/plugins/databases/clickhouse_introspector.py +22 -11
- databao_context_engine/plugins/databases/duckdb_introspector.py +1 -1
- databao_context_engine/plugins/databases/introspection_scope.py +11 -9
- databao_context_engine/plugins/databases/introspection_scope_matcher.py +2 -5
- databao_context_engine/plugins/databases/mssql_introspector.py +26 -17
- databao_context_engine/plugins/databases/mysql_introspector.py +23 -12
- databao_context_engine/plugins/databases/postgresql_introspector.py +2 -2
- databao_context_engine/plugins/databases/snowflake_introspector.py +43 -10
- databao_context_engine/plugins/plugin_loader.py +43 -42
- databao_context_engine/plugins/resources/parquet_introspector.py +2 -3
- databao_context_engine/project/info.py +31 -2
- databao_context_engine/project/init_project.py +16 -7
- databao_context_engine/project/layout.py +3 -3
- databao_context_engine/retrieve_embeddings/__init__.py +3 -0
- databao_context_engine/retrieve_embeddings/{internal/export_results.py → export_results.py} +2 -2
- databao_context_engine/retrieve_embeddings/{internal/retrieve_runner.py → retrieve_runner.py} +5 -9
- databao_context_engine/retrieve_embeddings/{internal/retrieve_service.py → retrieve_service.py} +3 -17
- databao_context_engine/retrieve_embeddings/retrieve_wiring.py +49 -0
- databao_context_engine/{serialisation → serialization}/yaml.py +1 -1
- databao_context_engine/services/chunk_embedding_service.py +23 -11
- databao_context_engine/services/factories.py +1 -46
- databao_context_engine/services/persistence_service.py +11 -11
- databao_context_engine/storage/connection.py +11 -7
- databao_context_engine/storage/exceptions/exceptions.py +2 -2
- databao_context_engine/storage/migrate.py +2 -4
- databao_context_engine/storage/migrations/V01__init.sql +6 -31
- databao_context_engine/storage/models.py +2 -23
- databao_context_engine/storage/repositories/chunk_repository.py +16 -12
- databao_context_engine/storage/repositories/factories.py +1 -12
- databao_context_engine/storage/repositories/vector_search_repository.py +8 -13
- databao_context_engine/system/properties.py +4 -2
- databao_context_engine-0.1.3.dist-info/METADATA +75 -0
- {databao_context_engine-0.1.2.dist-info → databao_context_engine-0.1.3.dist-info}/RECORD +68 -77
- databao_context_engine/build_sources/internal/build_service.py +0 -77
- databao_context_engine/build_sources/internal/build_wiring.py +0 -52
- databao_context_engine/build_sources/internal/export_results.py +0 -43
- databao_context_engine/build_sources/public/api.py +0 -4
- databao_context_engine/databao_engine.py +0 -85
- databao_context_engine/datasource_config/__init__.py +0 -0
- databao_context_engine/datasource_config/add_config.py +0 -50
- databao_context_engine/datasource_config/datasource_context.py +0 -60
- databao_context_engine/project/runs.py +0 -39
- databao_context_engine/retrieve_embeddings/internal/__init__.py +0 -0
- databao_context_engine/retrieve_embeddings/internal/retrieve_wiring.py +0 -29
- databao_context_engine/retrieve_embeddings/public/__init__.py +0 -0
- databao_context_engine/retrieve_embeddings/public/api.py +0 -3
- databao_context_engine/serialisation/__init__.py +0 -0
- databao_context_engine/services/run_name_policy.py +0 -8
- databao_context_engine/storage/repositories/datasource_run_repository.py +0 -136
- databao_context_engine/storage/repositories/run_repository.py +0 -157
- databao_context_engine-0.1.2.dist-info/METADATA +0 -187
- /databao_context_engine/{build_sources/internal → datasources}/__init__.py +0 -0
- /databao_context_engine/{build_sources/public → serialization}/__init__.py +0 -0
- {databao_context_engine-0.1.2.dist-info → databao_context_engine-0.1.3.dist-info}/WHEEL +0 -0
- {databao_context_engine-0.1.2.dist-info → databao_context_engine-0.1.3.dist-info}/entry_points.txt +0 -0
|
@@ -1,24 +1,28 @@
|
|
|
1
1
|
import logging
|
|
2
2
|
from contextlib import contextmanager
|
|
3
3
|
from pathlib import Path
|
|
4
|
+
from typing import Iterator
|
|
4
5
|
|
|
5
6
|
import duckdb
|
|
6
|
-
|
|
7
|
-
from databao_context_engine.system.properties import get_db_path
|
|
7
|
+
from duckdb import DuckDBPyConnection
|
|
8
8
|
|
|
9
9
|
logger = logging.getLogger(__name__)
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
@contextmanager
|
|
13
|
-
def open_duckdb_connection(db_path: str | Path
|
|
14
|
-
"""
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
def open_duckdb_connection(db_path: str | Path) -> Iterator[DuckDBPyConnection]:
|
|
14
|
+
"""Open a DuckDB connection with vector search enabled and close on exist.
|
|
15
|
+
|
|
16
|
+
It also loads the vss extension and enables HNSW experimental persistence on the DuckDB.
|
|
17
17
|
|
|
18
18
|
Usage:
|
|
19
19
|
with open_duckdb_connection() as conn:
|
|
20
|
+
|
|
21
|
+
Yields:
|
|
22
|
+
The opened DuckDB connection.
|
|
23
|
+
|
|
20
24
|
"""
|
|
21
|
-
path = str(db_path
|
|
25
|
+
path = str(db_path)
|
|
22
26
|
conn = duckdb.connect(path)
|
|
23
27
|
logger.debug(f"Connected to DuckDB database at {path}")
|
|
24
28
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
class RepositoryError(Exception):
|
|
2
|
-
"""Base exception for repository errors"""
|
|
2
|
+
"""Base exception for repository errors."""
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
class IntegrityError(RepositoryError):
|
|
6
|
-
"""Raised when a DB constraint is violated"""
|
|
6
|
+
"""Raised when a DB constraint is violated."""
|
|
@@ -8,12 +8,10 @@ from typing import LiteralString
|
|
|
8
8
|
|
|
9
9
|
import duckdb
|
|
10
10
|
|
|
11
|
-
from databao_context_engine.system.properties import get_db_path
|
|
12
|
-
|
|
13
11
|
logger = logging.getLogger(__name__)
|
|
14
12
|
|
|
15
13
|
|
|
16
|
-
def migrate(db_path: str | Path
|
|
14
|
+
def migrate(db_path: str | Path, migration_files: list[Path] | None = None) -> None:
|
|
17
15
|
if migration_files is None:
|
|
18
16
|
migration_files = [
|
|
19
17
|
migration
|
|
@@ -21,7 +19,7 @@ def migrate(db_path: str | Path | None = None, migration_files: list[Path] | Non
|
|
|
21
19
|
if isinstance(migration, Path) and ".sql" == migration.suffix
|
|
22
20
|
]
|
|
23
21
|
|
|
24
|
-
db = Path(db_path
|
|
22
|
+
db = Path(db_path).expanduser().resolve()
|
|
25
23
|
db.parent.mkdir(parents=True, exist_ok=True)
|
|
26
24
|
logger.debug("Running migrations on database: %s", db)
|
|
27
25
|
|
|
@@ -2,36 +2,15 @@ INSTALL vss;
|
|
|
2
2
|
LOAD vss;
|
|
3
3
|
SET hnsw_enable_experimental_persistence = true;
|
|
4
4
|
|
|
5
|
-
CREATE SEQUENCE IF NOT EXISTS run_id_seq START 1;
|
|
6
|
-
CREATE SEQUENCE IF NOT EXISTS datasource_run_id_seq START 1;
|
|
7
5
|
CREATE SEQUENCE IF NOT EXISTS chunk_id_seq START 1;
|
|
8
6
|
|
|
9
|
-
CREATE TABLE IF NOT EXISTS run (
|
|
10
|
-
run_id BIGINT PRIMARY KEY DEFAULT nextval('run_id_seq'),
|
|
11
|
-
project_id TEXT NOT NULL,
|
|
12
|
-
started_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
13
|
-
ended_at TIMESTAMP,
|
|
14
|
-
nemory_version TEXT,
|
|
15
|
-
run_name TEXT NOT NULL,
|
|
16
|
-
);
|
|
17
|
-
|
|
18
|
-
CREATE TABLE IF NOT EXISTS datasource_run (
|
|
19
|
-
datasource_run_id BIGINT PRIMARY KEY DEFAULT nextval('datasource_run_id_seq'),
|
|
20
|
-
run_id BIGINT NOT NULL REFERENCES run(run_id),
|
|
21
|
-
plugin TEXT NOT NULL,
|
|
22
|
-
source_id TEXT NOT NULL,
|
|
23
|
-
storage_directory TEXT NOT NULL,
|
|
24
|
-
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
25
|
-
full_type TEXT NOT NULL,
|
|
26
|
-
);
|
|
27
|
-
|
|
28
7
|
CREATE TABLE IF NOT EXISTS chunk (
|
|
29
|
-
chunk_id
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
8
|
+
chunk_id BIGINT PRIMARY KEY DEFAULT nextval('chunk_id_seq'),
|
|
9
|
+
full_type TEXT NOT NULL,
|
|
10
|
+
datasource_id TEXT NOT NULL,
|
|
11
|
+
embeddable_text TEXT NOT NULL,
|
|
12
|
+
display_text TEXT,
|
|
13
|
+
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
35
14
|
);
|
|
36
15
|
|
|
37
16
|
CREATE TABLE IF NOT EXISTS embedding_model_registry (
|
|
@@ -57,7 +36,3 @@ OR IGNORE INTO
|
|
|
57
36
|
embedding_model_registry(embedder, model_id, dim, table_name)
|
|
58
37
|
VALUES
|
|
59
38
|
('ollama', 'nomic-embed-text:v1.5', 768, 'embedding_ollama__nomic_embed_text_v1_5__768');
|
|
60
|
-
|
|
61
|
-
CREATE INDEX IF NOT EXISTS idx_datasource_run_run ON datasource_run(run_id);
|
|
62
|
-
CREATE INDEX IF NOT EXISTS idx_datasource_run_plugin_run ON datasource_run(plugin, run_id);
|
|
63
|
-
CREATE INDEX IF NOT EXISTS idx_chunk_datasource_run ON chunk(datasource_run_id);
|
|
@@ -4,34 +4,13 @@ from datetime import datetime
|
|
|
4
4
|
from typing import Optional
|
|
5
5
|
|
|
6
6
|
|
|
7
|
-
@dataclass(frozen=True)
|
|
8
|
-
class RunDTO:
|
|
9
|
-
run_id: int
|
|
10
|
-
run_name: str
|
|
11
|
-
project_id: str
|
|
12
|
-
started_at: datetime
|
|
13
|
-
ended_at: Optional[datetime]
|
|
14
|
-
nemory_version: str
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
@dataclass(frozen=True)
|
|
18
|
-
class DatasourceRunDTO:
|
|
19
|
-
datasource_run_id: int
|
|
20
|
-
run_id: int
|
|
21
|
-
plugin: str
|
|
22
|
-
full_type: str
|
|
23
|
-
source_id: str
|
|
24
|
-
storage_directory: str
|
|
25
|
-
created_at: datetime
|
|
26
|
-
|
|
27
|
-
|
|
28
7
|
@dataclass(frozen=True)
|
|
29
8
|
class ChunkDTO:
|
|
30
9
|
chunk_id: int
|
|
31
|
-
|
|
10
|
+
full_type: str
|
|
11
|
+
datasource_id: str
|
|
32
12
|
embeddable_text: str
|
|
33
13
|
display_text: Optional[str]
|
|
34
|
-
generated_description: str
|
|
35
14
|
created_at: datetime
|
|
36
15
|
|
|
37
16
|
|
|
@@ -14,22 +14,22 @@ class ChunkRepository:
|
|
|
14
14
|
def create(
|
|
15
15
|
self,
|
|
16
16
|
*,
|
|
17
|
-
|
|
17
|
+
full_type: str,
|
|
18
|
+
datasource_id: str,
|
|
18
19
|
embeddable_text: str,
|
|
19
20
|
display_text: Optional[str],
|
|
20
|
-
generated_description: str,
|
|
21
21
|
) -> ChunkDTO:
|
|
22
22
|
try:
|
|
23
23
|
row = self._conn.execute(
|
|
24
24
|
"""
|
|
25
25
|
INSERT INTO
|
|
26
|
-
chunk(
|
|
26
|
+
chunk(full_type, datasource_id, embeddable_text, display_text)
|
|
27
27
|
VALUES
|
|
28
28
|
(?, ?, ?, ?)
|
|
29
29
|
RETURNING
|
|
30
30
|
*
|
|
31
31
|
""",
|
|
32
|
-
[
|
|
32
|
+
[full_type, datasource_id, embeddable_text, display_text],
|
|
33
33
|
).fetchone()
|
|
34
34
|
if row is None:
|
|
35
35
|
raise RuntimeError("chunk creation returned no object")
|
|
@@ -55,22 +55,26 @@ class ChunkRepository:
|
|
|
55
55
|
self,
|
|
56
56
|
chunk_id: int,
|
|
57
57
|
*,
|
|
58
|
+
full_type: Optional[str] = None,
|
|
59
|
+
datasource_id: Optional[str] = None,
|
|
58
60
|
embeddable_text: Optional[str] = None,
|
|
59
61
|
display_text: Optional[str] = None,
|
|
60
|
-
generated_description: Optional[str] = None,
|
|
61
62
|
) -> Optional[ChunkDTO]:
|
|
62
63
|
sets: list[Any] = []
|
|
63
64
|
params: list[Any] = []
|
|
64
65
|
|
|
66
|
+
if full_type is not None:
|
|
67
|
+
sets.append("full_type = ?")
|
|
68
|
+
params.append(full_type)
|
|
69
|
+
if datasource_id is not None:
|
|
70
|
+
sets.append("datasource_id = ?")
|
|
71
|
+
params.append(datasource_id)
|
|
65
72
|
if embeddable_text is not None:
|
|
66
73
|
sets.append("embeddable_text = ?")
|
|
67
74
|
params.append(embeddable_text)
|
|
68
75
|
if display_text is not None:
|
|
69
76
|
sets.append("display_text = ?")
|
|
70
77
|
params.append(display_text)
|
|
71
|
-
if generated_description is not None:
|
|
72
|
-
sets.append("generated_description = ?")
|
|
73
|
-
params.append(generated_description)
|
|
74
78
|
|
|
75
79
|
if not sets:
|
|
76
80
|
return self.get(chunk_id)
|
|
@@ -119,12 +123,12 @@ class ChunkRepository:
|
|
|
119
123
|
|
|
120
124
|
@staticmethod
|
|
121
125
|
def _row_to_dto(row: Tuple) -> ChunkDTO:
|
|
122
|
-
chunk_id,
|
|
126
|
+
chunk_id, full_type, datasource_id, embeddable_text, display_text, created_at = row
|
|
123
127
|
return ChunkDTO(
|
|
124
128
|
chunk_id=int(chunk_id),
|
|
125
|
-
|
|
126
|
-
|
|
129
|
+
full_type=full_type,
|
|
130
|
+
datasource_id=datasource_id,
|
|
131
|
+
embeddable_text=embeddable_text,
|
|
127
132
|
display_text=display_text,
|
|
128
|
-
generated_description=str(generated_description),
|
|
129
133
|
created_at=created_at,
|
|
130
134
|
)
|
|
@@ -1,24 +1,13 @@
|
|
|
1
|
-
from
|
|
1
|
+
from duckdb import DuckDBPyConnection
|
|
2
2
|
|
|
3
|
-
from databao_context_engine.services.run_name_policy import RunNamePolicy
|
|
4
3
|
from databao_context_engine.storage.repositories.chunk_repository import ChunkRepository
|
|
5
|
-
from databao_context_engine.storage.repositories.datasource_run_repository import DatasourceRunRepository
|
|
6
4
|
from databao_context_engine.storage.repositories.embedding_model_registry_repository import (
|
|
7
5
|
EmbeddingModelRegistryRepository,
|
|
8
6
|
)
|
|
9
7
|
from databao_context_engine.storage.repositories.embedding_repository import EmbeddingRepository
|
|
10
|
-
from databao_context_engine.storage.repositories.run_repository import RunRepository
|
|
11
8
|
from databao_context_engine.storage.repositories.vector_search_repository import VectorSearchRepository
|
|
12
9
|
|
|
13
10
|
|
|
14
|
-
def create_run_repository(conn: DuckDBPyConnection) -> RunRepository:
|
|
15
|
-
return RunRepository(conn, run_name_policy=RunNamePolicy())
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
def create_datasource_run_repository(conn: DuckDBPyConnection) -> DatasourceRunRepository:
|
|
19
|
-
return DatasourceRunRepository(conn)
|
|
20
|
-
|
|
21
|
-
|
|
22
11
|
def create_chunk_repository(conn: DuckDBPyConnection) -> ChunkRepository:
|
|
23
12
|
return ChunkRepository(conn)
|
|
24
13
|
|
|
@@ -3,8 +3,8 @@ from dataclasses import dataclass
|
|
|
3
3
|
|
|
4
4
|
import duckdb
|
|
5
5
|
|
|
6
|
+
from databao_context_engine.datasources.types import DatasourceId
|
|
6
7
|
from databao_context_engine.pluginlib.build_plugin import DatasourceType
|
|
7
|
-
from databao_context_engine.project.types import DatasourceId
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
@dataclass(kw_only=True, frozen=True)
|
|
@@ -23,32 +23,27 @@ class VectorSearchRepository:
|
|
|
23
23
|
self._conn = conn
|
|
24
24
|
|
|
25
25
|
def get_display_texts_by_similarity(
|
|
26
|
-
self, *, table_name: str,
|
|
26
|
+
self, *, table_name: str, retrieve_vec: Sequence[float], dimension: int, limit: int
|
|
27
27
|
) -> list[VectorSearchResult]:
|
|
28
|
-
"""
|
|
29
|
-
Read only similarity search on a specific embedding shard table.
|
|
30
|
-
Returns the display text for the closest matches in a given run
|
|
31
|
-
"""
|
|
28
|
+
"""Read only similarity search on a specific embedding shard table."""
|
|
32
29
|
rows = self._conn.execute(
|
|
33
30
|
f"""
|
|
34
31
|
SELECT
|
|
35
32
|
COALESCE(c.display_text, c.embeddable_text) AS display_text,
|
|
36
|
-
c.embeddable_text
|
|
33
|
+
c.embeddable_text,
|
|
37
34
|
array_cosine_distance(e.vec, CAST(? AS FLOAT[{dimension}])) AS cosine_distance,
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
c.full_type,
|
|
36
|
+
c.datasource_id,
|
|
40
37
|
FROM
|
|
41
38
|
{table_name} e
|
|
42
39
|
JOIN chunk c ON e.chunk_id = c.chunk_id
|
|
43
|
-
JOIN datasource_run dr ON c.datasource_run_id = dr.datasource_run_id
|
|
44
40
|
WHERE
|
|
45
|
-
|
|
46
|
-
AND cosine_distance < ?
|
|
41
|
+
cosine_distance < ?
|
|
47
42
|
ORDER BY
|
|
48
43
|
array_cosine_distance(e.vec, CAST(? AS FLOAT[{dimension}])) ASC
|
|
49
44
|
LIMIT ?
|
|
50
45
|
""",
|
|
51
|
-
[list(retrieve_vec),
|
|
46
|
+
[list(retrieve_vec), self._DEFAULT_DISTANCE_THRESHOLD, list(retrieve_vec), limit],
|
|
52
47
|
).fetchall()
|
|
53
48
|
|
|
54
49
|
return [
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
|
|
4
|
+
from databao_context_engine.project.layout import get_output_dir
|
|
5
|
+
|
|
4
6
|
# it's private, so it doesn't get imported directy. This value is mocked in tests
|
|
5
7
|
_dce_path = Path(os.getenv("DATABAO_CONTEXT_ENGINE_PATH") or "~/.dce").expanduser().resolve()
|
|
6
8
|
|
|
@@ -9,5 +11,5 @@ def get_dce_path() -> Path:
|
|
|
9
11
|
return _dce_path
|
|
10
12
|
|
|
11
13
|
|
|
12
|
-
def get_db_path() -> Path:
|
|
13
|
-
return
|
|
14
|
+
def get_db_path(project_dir: Path) -> Path:
|
|
15
|
+
return get_output_dir(project_dir) / "dce.duckdb"
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: databao-context-engine
|
|
3
|
+
Version: 0.1.3
|
|
4
|
+
Summary: Add your description here
|
|
5
|
+
Requires-Dist: click>=8.3.0
|
|
6
|
+
Requires-Dist: duckdb>=1.4.3
|
|
7
|
+
Requires-Dist: pyyaml>=6.0.3
|
|
8
|
+
Requires-Dist: requests>=2.32.5
|
|
9
|
+
Requires-Dist: mcp>=1.23.3
|
|
10
|
+
Requires-Dist: pydantic>=2.12.4
|
|
11
|
+
Requires-Dist: jinja2>=3.1.6
|
|
12
|
+
Requires-Dist: pyathena>=3.25.0 ; extra == 'athena'
|
|
13
|
+
Requires-Dist: clickhouse-connect>=0.10.0 ; extra == 'clickhouse'
|
|
14
|
+
Requires-Dist: mssql-python>=1.0.0 ; extra == 'mssql'
|
|
15
|
+
Requires-Dist: pymysql>=1.1.2 ; extra == 'mysql'
|
|
16
|
+
Requires-Dist: asyncpg>=0.31.0 ; extra == 'postgresql'
|
|
17
|
+
Requires-Dist: snowflake-connector-python>=4.2.0 ; extra == 'snowflake'
|
|
18
|
+
Requires-Python: >=3.12
|
|
19
|
+
Provides-Extra: athena
|
|
20
|
+
Provides-Extra: clickhouse
|
|
21
|
+
Provides-Extra: mssql
|
|
22
|
+
Provides-Extra: mysql
|
|
23
|
+
Provides-Extra: postgresql
|
|
24
|
+
Provides-Extra: snowflake
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
|
|
27
|
+
[](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
|
|
28
|
+
[](https://github.com/JetBrains/databao-context-engine/blob/main/LICENSE)
|
|
29
|
+
|
|
30
|
+
[//]: # ([](https://pypi.org/project/databao-context-engine))
|
|
31
|
+
|
|
32
|
+
[//]: # ([](https://pypi.org/project/databao-context-engine/))
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
<h1 align="center">Databao Context Engine</h1>
|
|
36
|
+
<p align="center">
|
|
37
|
+
<b>Semantic context for your LLMs — generated automatically.</b><br/>
|
|
38
|
+
No more copying schemas. No manual documentation. Just accurate answers.
|
|
39
|
+
</p>
|
|
40
|
+
<p align="center">
|
|
41
|
+
<a href="https://databao.app">Website</a>
|
|
42
|
+
|
|
43
|
+
[//]: # (•)
|
|
44
|
+
|
|
45
|
+
[//]: # ( <a href="#quickstart">Quickstart</a> •)
|
|
46
|
+
|
|
47
|
+
[//]: # ( <a href="#supported-data-sources">Data Sources</a> •)
|
|
48
|
+
|
|
49
|
+
[//]: # ( <a href="#contributing">Contributing</a>)
|
|
50
|
+
</p>
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## What is Databao Context Engine?
|
|
55
|
+
|
|
56
|
+
Databao Context Engine **automatically generates governed semantic context** from your databases, BI tools, documents, and spreadsheets.
|
|
57
|
+
|
|
58
|
+
Integrate it with any LLM to deliver **accurate, context-aware answers** — without copying schemas or writing documentation by hand.
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
Your data sources → Context Engine → Unified semantic graph → Any LLM
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Why choose Databao Context Engine?
|
|
65
|
+
|
|
66
|
+
| Feature | What it means for you |
|
|
67
|
+
|----------------------------|----------------------------------------------------------------|
|
|
68
|
+
| **Auto-generated context** | Extracts schemas, relationships, and semantics automatically |
|
|
69
|
+
| **Runs locally** | Your data never leaves your environment |
|
|
70
|
+
| **MCP integration** | Works with Claude Desktop, Cursor, and any MCP-compatible tool |
|
|
71
|
+
| **Multiple sources** | Databases, dbt projects, spreadsheets, documents |
|
|
72
|
+
| **Built-in benchmarks** | Measure and improve context quality over time |
|
|
73
|
+
| **LLM agnostic** | OpenAI, Anthropic, Ollama, Gemini — use any model |
|
|
74
|
+
| **Governed & versioned** | Track, version, and share context across your team |
|
|
75
|
+
| **Dynamic or static** | Serve context via MCP server or export as artifact |
|
|
@@ -1,33 +1,32 @@
|
|
|
1
|
-
databao_context_engine/__init__.py,sha256=
|
|
2
|
-
databao_context_engine/build_sources/__init__.py,sha256=
|
|
3
|
-
databao_context_engine/build_sources/
|
|
4
|
-
databao_context_engine/build_sources/
|
|
5
|
-
databao_context_engine/build_sources/
|
|
6
|
-
databao_context_engine/build_sources/
|
|
7
|
-
databao_context_engine/build_sources/
|
|
8
|
-
databao_context_engine/build_sources/internal/plugin_execution.py,sha256=ZCDceJD9QCQDdsHdOf7oK7tTTuE_Wwyet3jL400WvJg,2226
|
|
9
|
-
databao_context_engine/build_sources/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
databao_context_engine/build_sources/public/api.py,sha256=mZRL5V9Z0nU8uF9mjaNrgrulU9boLdPA8-ssuO2_bIc,242
|
|
1
|
+
databao_context_engine/__init__.py,sha256=nYkaM5t5Y5EV-p9_Ajg62xLFHW24liMc79oKxyodGYc,1874
|
|
2
|
+
databao_context_engine/build_sources/__init__.py,sha256=FteGp3MvSuX_fh-Fx1pq-jOjFcjYKQSXFSll4tQffvk,224
|
|
3
|
+
databao_context_engine/build_sources/build_runner.py,sha256=YXU-EJoJ5nzGePrvWA8nxJl-k-PKwgShiKPHiN5ndLM,3981
|
|
4
|
+
databao_context_engine/build_sources/build_service.py,sha256=eywJzpvZUVrj-JYxXii_kxhTBzVUT0xfbNtdAFcpGWQ,1624
|
|
5
|
+
databao_context_engine/build_sources/build_wiring.py,sha256=7Jw78gCy57Zy0e5nUnAqQmPdTkW6tztlHnQmRJ1cNkE,3192
|
|
6
|
+
databao_context_engine/build_sources/export_results.py,sha256=E3HP4uaQKYDrmAJKFWwDT190j7ZKfO791_pjKebTMQM,1773
|
|
7
|
+
databao_context_engine/build_sources/plugin_execution.py,sha256=dcnnZN-JQxmpHMCVdA6pUtbJwfJRHNmaWnu1f0ySL6M,2211
|
|
11
8
|
databao_context_engine/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
-
databao_context_engine/cli/add_datasource_config.py,sha256=
|
|
13
|
-
databao_context_engine/cli/commands.py,sha256=
|
|
9
|
+
databao_context_engine/cli/add_datasource_config.py,sha256=ukgore2ZG1Gen2A8LCoweOxuNhcVonhT3p_nYbtyAow,6371
|
|
10
|
+
databao_context_engine/cli/commands.py,sha256=ntqoThbplgrHPtDy5kKna1Cz_iu8UKJQG6q7G6UmsCs,7106
|
|
14
11
|
databao_context_engine/cli/datasources.py,sha256=kHbXhEnDVaYXTRAE3WeaDGohH1Y9cwyYjjcycQ8eh1U,2376
|
|
15
|
-
databao_context_engine/cli/info.py,sha256=
|
|
12
|
+
databao_context_engine/cli/info.py,sha256=xX9io82Nzl-k7Xcds8WLTGzzBYorEYh10TlFJvXquyg,1119
|
|
16
13
|
databao_context_engine/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
17
14
|
databao_context_engine/config/log_config.yaml,sha256=hH2NPumufcyig8L-7Z_DbLQ88_G2N6CAEl5fvHafeAw,360
|
|
18
15
|
databao_context_engine/config/logging.py,sha256=66k7x3ftEdHx-CKqbOss4pqZfGn4nMFv7AzVPs9aVnY,1525
|
|
19
|
-
databao_context_engine/
|
|
20
|
-
databao_context_engine/
|
|
21
|
-
databao_context_engine/
|
|
22
|
-
databao_context_engine/
|
|
23
|
-
databao_context_engine/
|
|
24
|
-
databao_context_engine/
|
|
16
|
+
databao_context_engine/databao_context_engine.py,sha256=_45hvUt9u0CDhhoZDjByf12jw_QjQgH_fa0DM1D2zTc,5416
|
|
17
|
+
databao_context_engine/databao_context_project_manager.py,sha256=NVkVEpW_82iQuBTnEoJDNFswidR6nzTP9h6m0NDCogg,7502
|
|
18
|
+
databao_context_engine/datasources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
19
|
+
databao_context_engine/datasources/add_config.py,sha256=NN6wenXWAYxC_f65HRh8NZRMO86q3tDxi5Y2mX9qiR4,1208
|
|
20
|
+
databao_context_engine/datasources/check_config.py,sha256=DefL4SkrdlWVjboN5KgZ4lMtqPC7Y5hTnvNtPhkMmE4,5475
|
|
21
|
+
databao_context_engine/datasources/datasource_context.py,sha256=fK1MEvlDwPvybqIQ_Xkw2SyZd_p2X0gPUP9hX6AfDhU,3542
|
|
22
|
+
databao_context_engine/datasources/datasource_discovery.py,sha256=SbqYdqg59M9f_a3TKAf4uXNm2hCDJ-U28Jw4cE-8h5g,5198
|
|
23
|
+
databao_context_engine/datasources/types.py,sha256=KO4AiYvh7qbMyyPmzhZDuByCHkiFSOe_SvnwrYSiw0Q,7063
|
|
25
24
|
databao_context_engine/event_journal/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
25
|
databao_context_engine/event_journal/writer.py,sha256=abkl2SPHYzO8XAUsjbtrcXm6WQk15zWpXhYm86qb6G0,986
|
|
27
26
|
databao_context_engine/generate_configs_schemas.py,sha256=OBX1Motg_d-fmZCUnDoF-3c8dYbDcTOJmhD7F0WJHH8,3017
|
|
28
|
-
databao_context_engine/init_project.py,sha256=
|
|
27
|
+
databao_context_engine/init_project.py,sha256=enLvYOd5MpGYVdWly7DuLMzPLUEE6130bEuxh0YZft8,1496
|
|
29
28
|
databao_context_engine/introspection/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
30
|
-
databao_context_engine/introspection/property_extract.py,sha256=
|
|
29
|
+
databao_context_engine/introspection/property_extract.py,sha256=61cTxGBUgb9px-hA-S-e5Ex68GjNoNoN3HgwuaGK6ss,8223
|
|
31
30
|
databao_context_engine/llm/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
31
|
databao_context_engine/llm/config.py,sha256=geIygR-9maeKbvmcO5J3iNZXKS4LZc7zpKYyaH8vCoI,463
|
|
33
32
|
databao_context_engine/llm/descriptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -36,100 +35,92 @@ databao_context_engine/llm/descriptions/provider.py,sha256=nojEI0l55TfFuNooQwGNv
|
|
|
36
35
|
databao_context_engine/llm/embeddings/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
37
36
|
databao_context_engine/llm/embeddings/ollama.py,sha256=GQzlMBRJGJe_xreY9-Y3REBFWWaOyKhiGQxWxrR6xfY,949
|
|
38
37
|
databao_context_engine/llm/embeddings/provider.py,sha256=IVrOptwad2Fr1wf1SBOM3-7y66k08mOZnga1NA6yhbA,300
|
|
39
|
-
databao_context_engine/llm/errors.py,sha256=
|
|
38
|
+
databao_context_engine/llm/errors.py,sha256=Y4CVHYJKkn2oHnFWVlVL1QJl4gtvW4z11V3FB9qp3Cc,402
|
|
40
39
|
databao_context_engine/llm/factory.py,sha256=VSCVAWXV6d496SWDyUH4rGYGXQ3Q6yg9Ymc8C6x8EXQ,1765
|
|
41
|
-
databao_context_engine/llm/install.py,sha256=
|
|
40
|
+
databao_context_engine/llm/install.py,sha256=8_rtcr-o03FyW7nieX7xE24oVhxVa_nrd97CC0hbbZs,6555
|
|
42
41
|
databao_context_engine/llm/runtime.py,sha256=jf_sPDF4s_fChFj2enLcEIBXIWjSjaYNh-l6lXIgRd4,2173
|
|
43
|
-
databao_context_engine/llm/service.py,sha256=
|
|
42
|
+
databao_context_engine/llm/service.py,sha256=rM_DrF2F7NylxBhtfVGporUcv91eR_nF1mF--Zxh2tc,5978
|
|
44
43
|
databao_context_engine/main.py,sha256=3gWwEc9GZJUFANJtW9Fx4smVzib_sDtFkBGPILjisaI,350
|
|
45
44
|
databao_context_engine/mcp/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
46
|
-
databao_context_engine/mcp/all_results_tool.py,sha256=
|
|
47
|
-
databao_context_engine/mcp/mcp_runner.py,sha256=
|
|
48
|
-
databao_context_engine/mcp/mcp_server.py,sha256=
|
|
49
|
-
databao_context_engine/mcp/retrieve_tool.py,sha256=
|
|
45
|
+
databao_context_engine/mcp/all_results_tool.py,sha256=rwd19nhydLtjxaNaYEKQuJkQwuEID0o_1YdwvvyIhls,200
|
|
46
|
+
databao_context_engine/mcp/mcp_runner.py,sha256=bnB2a-_P1zOlDBqpyFIq4n2hWkfwqb6G7dHb3-3Q2I0,468
|
|
47
|
+
databao_context_engine/mcp/mcp_server.py,sha256=p8FZxqa43ZzWuz8EYJn70RLE0a8-eoPH7Pb2QJ7mmiI,2133
|
|
48
|
+
databao_context_engine/mcp/retrieve_tool.py,sha256=U5K5okX7DyrKQ_-1nZ6YOP_oUjIBLEv7JFjz3f-eJMw,611
|
|
49
|
+
databao_context_engine/plugin_loader.py,sha256=2vq7rCNQuxQvnGqF758Ke2IzCO-11dLD2lH8BKP1b68,4829
|
|
50
50
|
databao_context_engine/pluginlib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
-
databao_context_engine/pluginlib/build_plugin.py,sha256=
|
|
52
|
-
databao_context_engine/pluginlib/config.py,sha256=
|
|
51
|
+
databao_context_engine/pluginlib/build_plugin.py,sha256=v90JU4JRqYb4BbMvx833lPVafBUOE7Bhpt8SOWdBrZU,4105
|
|
52
|
+
databao_context_engine/pluginlib/config.py,sha256=fAu1AuxSFI6LOoAyvwuFE5p11bOsHp9EZzn2ST8DrUI,1534
|
|
53
53
|
databao_context_engine/pluginlib/plugin_utils.py,sha256=f76ksdMUG3Wy4KOytUYxLMrq9iOHytu3QF8wc5NzzJE,2471
|
|
54
54
|
databao_context_engine/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
55
55
|
databao_context_engine/plugins/athena_db_plugin.py,sha256=53Dui_V7MunJ3jmyYEAmkZofuHtQP-Ic3bNhsxTwAyc,456
|
|
56
56
|
databao_context_engine/plugins/base_db_plugin.py,sha256=uuzKSEtszKnxL-cBg5ya6TxQHq8oqlIicUbZlkoyxlI,1562
|
|
57
57
|
databao_context_engine/plugins/clickhouse_db_plugin.py,sha256=4J1CNoeWPRvgmgkww7CQALxTP5D9eSLl1TpDRgwHBew,509
|
|
58
58
|
databao_context_engine/plugins/databases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
|
-
databao_context_engine/plugins/databases/athena_introspector.py,sha256=
|
|
60
|
-
databao_context_engine/plugins/databases/base_introspector.py,sha256=
|
|
61
|
-
databao_context_engine/plugins/databases/clickhouse_introspector.py,sha256=
|
|
59
|
+
databao_context_engine/plugins/databases/athena_introspector.py,sha256=O8CfPzj5y0gCLBAjte8bvo7F9c2PGH6ldP6uq8_0Wt4,5702
|
|
60
|
+
databao_context_engine/plugins/databases/base_introspector.py,sha256=aXMWJ13LdYs1pSaGIhtA8zefe-oXlmzM6X_Ur8ZbMok,5760
|
|
61
|
+
databao_context_engine/plugins/databases/clickhouse_introspector.py,sha256=QfXLaA6gr0pdSLiaC3Mri_JohhRGgjw1rCJxLsHJOqk,6353
|
|
62
62
|
databao_context_engine/plugins/databases/database_chunker.py,sha256=dn9Mb9Sw4f8IwBe9RtukQGT0yyKLQt5i4tjvsrFh1ew,2100
|
|
63
63
|
databao_context_engine/plugins/databases/databases_types.py,sha256=kYZEaFa_cnROg_n1k7tIonoC2VunLBe5SQR47GOt_8k,2579
|
|
64
|
-
databao_context_engine/plugins/databases/duckdb_introspector.py,sha256=
|
|
64
|
+
databao_context_engine/plugins/databases/duckdb_introspector.py,sha256=ymcvEM6zodZBY92xjamyZHJBrA2Jk1sFTZetqxR80Pg,11430
|
|
65
65
|
databao_context_engine/plugins/databases/introspection_model_builder.py,sha256=nfQLKVbwaWY12lnWrpCoVY2rolW263IwvWg7NkLjtk0,10350
|
|
66
|
-
databao_context_engine/plugins/databases/introspection_scope.py,sha256=
|
|
67
|
-
databao_context_engine/plugins/databases/introspection_scope_matcher.py,sha256=
|
|
68
|
-
databao_context_engine/plugins/databases/mssql_introspector.py,sha256=
|
|
69
|
-
databao_context_engine/plugins/databases/mysql_introspector.py,sha256=
|
|
70
|
-
databao_context_engine/plugins/databases/postgresql_introspector.py,sha256=
|
|
71
|
-
databao_context_engine/plugins/databases/snowflake_introspector.py,sha256=
|
|
66
|
+
databao_context_engine/plugins/databases/introspection_scope.py,sha256=0BZAAmVTiHifOzeuQkCsGKrGRnZCPHRCLqam5nQqr88,2225
|
|
67
|
+
databao_context_engine/plugins/databases/introspection_scope_matcher.py,sha256=gseF4j-SD-7SSPMDlDqHUOTI3tPSaOGKJgp42WDVlsY,3605
|
|
68
|
+
databao_context_engine/plugins/databases/mssql_introspector.py,sha256=Pnu9LpEXZn7qUH0ANHeijynamX6dLJveHrK0tOy1PII,18793
|
|
69
|
+
databao_context_engine/plugins/databases/mysql_introspector.py,sha256=IoiAjzUuJwkjAXPw-X7LBRfKoY3Y2WHrHzEeXNfdF9A,14504
|
|
70
|
+
databao_context_engine/plugins/databases/postgresql_introspector.py,sha256=tHsQNWJLHcH4GUYwmXSf5mY6XIMhvtpUbGgwmWfljpw,17489
|
|
71
|
+
databao_context_engine/plugins/databases/snowflake_introspector.py,sha256=6AYsJNfhT6rAJYBH7A-_ukjtLxi-0p2Dsz9b6cda4U4,12005
|
|
72
72
|
databao_context_engine/plugins/duckdb_db_plugin.py,sha256=uumf9kXz6U-6QbX0i1ChHHxxvdq5_di3gTNpVDUCYdg,451
|
|
73
73
|
databao_context_engine/plugins/mssql_db_plugin.py,sha256=YVor2QMDuL6XOLT8RFPOgs1Uhj1ZVYoFP5DApDJFPaE,446
|
|
74
74
|
databao_context_engine/plugins/mysql_db_plugin.py,sha256=wy8HTiYuE8GTxfoc5gdrinEYv7NWHGrslzaAzruQecY,446
|
|
75
75
|
databao_context_engine/plugins/parquet_plugin.py,sha256=qlpzQmiEwpb8Jma50HoIvljGV5ZiWkZU7GSiGV7M6kc,1181
|
|
76
|
-
databao_context_engine/plugins/plugin_loader.py,sha256=
|
|
76
|
+
databao_context_engine/plugins/plugin_loader.py,sha256=Nx_OYGf9t3XKb_JV4Om9fCOuL7B-qVw-peXKXHiK8G0,3861
|
|
77
77
|
databao_context_engine/plugins/postgresql_db_plugin.py,sha256=PwLErcbqixsgz4Tqoift0uyerUqP_OaRzMaMAn0TE5A,486
|
|
78
78
|
databao_context_engine/plugins/resources/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
79
79
|
databao_context_engine/plugins/resources/parquet_chunker.py,sha256=R9WCOBqpKRTVN6t5eeOm_mmnKBOxvjIiQ9zTc8vnUb4,848
|
|
80
|
-
databao_context_engine/plugins/resources/parquet_introspector.py,sha256=
|
|
80
|
+
databao_context_engine/plugins/resources/parquet_introspector.py,sha256=_nB85_cSeFAHbnYlGPP_apRFkUQ6j24Efv-KNtOF2tM,6149
|
|
81
81
|
databao_context_engine/plugins/snowflake_db_plugin.py,sha256=ApiVE212DU9F4Zj1HPof6JQ66n4LUeYRRwhlTWRCxek,486
|
|
82
82
|
databao_context_engine/plugins/unstructured_files_plugin.py,sha256=TWV3fluusizul2YEN-YZ-K-C3s5W-5B8353-bjP53L8,2424
|
|
83
83
|
databao_context_engine/project/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
84
|
-
databao_context_engine/project/
|
|
85
|
-
databao_context_engine/project/
|
|
86
|
-
databao_context_engine/project/
|
|
87
|
-
databao_context_engine/project/layout.py,sha256=Q7AyiBwPnks98IfDKXB8eCzdwnMbkg8x1wd_1xCjfVo,4291
|
|
84
|
+
databao_context_engine/project/info.py,sha256=XcDB2tKlsM6PCKapXEB3fLIHPSWUR3XlNjnKWLyJ92s,2313
|
|
85
|
+
databao_context_engine/project/init_project.py,sha256=QiLalH--BMQGB-c2WBbPAUKBinDbO0cJkmilUfqPAuI,3970
|
|
86
|
+
databao_context_engine/project/layout.py,sha256=7ThzqnFejMogBV8c6Mt-Md4GO-kdzYNrmhhBTalYvps,4295
|
|
88
87
|
databao_context_engine/project/project_config.py,sha256=rI-Wkll7lca7RlYIaFScs5CIKIZ8uujtKRxSjibGIt8,1132
|
|
89
88
|
databao_context_engine/project/resources/examples/src/databases/example_postgres.yaml,sha256=5o6jF_zR4WSvS9QcZnGW-S2FmahsjNp-tMbAkzbNabo,139
|
|
90
89
|
databao_context_engine/project/resources/examples/src/files/documentation.md,sha256=k5G5lrN4S_ie2o7CBxXgLiWGIGtb3v-77c_3n4C7Lvw,1090
|
|
91
90
|
databao_context_engine/project/resources/examples/src/files/notes.txt,sha256=0T1u8lIwIRwNopEsfWmqfIbhfRl-DN3XuiIN7suRAiE,3668
|
|
92
|
-
databao_context_engine/
|
|
93
|
-
databao_context_engine/
|
|
94
|
-
databao_context_engine/retrieve_embeddings/
|
|
95
|
-
databao_context_engine/retrieve_embeddings/
|
|
96
|
-
databao_context_engine/retrieve_embeddings/
|
|
97
|
-
databao_context_engine/
|
|
98
|
-
databao_context_engine/
|
|
99
|
-
databao_context_engine/retrieve_embeddings/internal/retrieve_wiring.py,sha256=ZlKV6nls7yDAAdjai6Lg6LZDBEopygFGQXhh5E9HpA4,1386
|
|
100
|
-
databao_context_engine/retrieve_embeddings/public/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
101
|
-
databao_context_engine/retrieve_embeddings/public/api.py,sha256=cR0FnnVaLXGY0wEm3y-nCCj8NwdRWRBnuT2oFbjEfVM,135
|
|
102
|
-
databao_context_engine/serialisation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
103
|
-
databao_context_engine/serialisation/yaml.py,sha256=_NTW1qDdtX9PstCftNnzFa5B05B9ZJXjQBI6OXv0N24,1255
|
|
91
|
+
databao_context_engine/retrieve_embeddings/__init__.py,sha256=__aOhCc3sBfLtjxz0hlVGuSYUMRsEM3PucPYNC6LVq0,126
|
|
92
|
+
databao_context_engine/retrieve_embeddings/export_results.py,sha256=_IdhKPQQhK9o0uCLwRqoNTvStS3qh8UhdICfEADkFec,337
|
|
93
|
+
databao_context_engine/retrieve_embeddings/retrieve_runner.py,sha256=-nvsGssxEQkXoL4D02L_RDYGuvbsN0icpFmw6JF4W-s,1046
|
|
94
|
+
databao_context_engine/retrieve_embeddings/retrieve_service.py,sha256=KrCNEu-Yd7dZrk0jk9ZOp4yO5WNjuzg7l4CgYLMqFvI,2005
|
|
95
|
+
databao_context_engine/retrieve_embeddings/retrieve_wiring.py,sha256=nO_OTrbKOsvgJz_CiqZliIdCg1L3m6cWELyTI2nVZgk,2123
|
|
96
|
+
databao_context_engine/serialization/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
97
|
+
databao_context_engine/serialization/yaml.py,sha256=e0xQBgDmrCspppAVyonMkVkznOjuUcOGjfNEi8Gmc74,1255
|
|
104
98
|
databao_context_engine/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
105
|
-
databao_context_engine/services/chunk_embedding_service.py,sha256=
|
|
99
|
+
databao_context_engine/services/chunk_embedding_service.py,sha256=Dy25u2QSSdq03v1zs2bjjm8Sze-VEd12F49gzoKXjOA,4924
|
|
106
100
|
databao_context_engine/services/embedding_shard_resolver.py,sha256=6oOVm6QJb74lEIbYXijWMqISTx1VfmKQaQjdSHr8zDA,2289
|
|
107
|
-
databao_context_engine/services/factories.py,sha256=
|
|
101
|
+
databao_context_engine/services/factories.py,sha256=IoRmJk9a7q2eszwz_zfqE2hJDOwpB76SmmmgR0DI-qY,1830
|
|
108
102
|
databao_context_engine/services/models.py,sha256=wHmk4eheoSopXkCs3v2ggoDAGoTPdHYcADMZ4gdtSCI,299
|
|
109
|
-
databao_context_engine/services/persistence_service.py,sha256=
|
|
110
|
-
databao_context_engine/services/run_name_policy.py,sha256=2z7HZFG-danHVTJgTTx1bUvZLMYLRKo_ZlIlwpcpIWA,229
|
|
103
|
+
databao_context_engine/services/persistence_service.py,sha256=Kcu4rw-TCqyHiGW1h5rYZfe3F-HZTn0tRAM4_czzEAc,2252
|
|
111
104
|
databao_context_engine/services/table_name_policy.py,sha256=q0scAQ_ZoTrV8V0J6cmxvsMYxTcmUlAqEWpzZUitpLQ,567
|
|
112
105
|
databao_context_engine/storage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
113
|
-
databao_context_engine/storage/connection.py,sha256=
|
|
106
|
+
databao_context_engine/storage/connection.py,sha256=UGnJOBJ83jDAmN3fmjVZI60qUw5cAC3YNLToJZLOhGQ,941
|
|
114
107
|
databao_context_engine/storage/exceptions/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
115
|
-
databao_context_engine/storage/exceptions/exceptions.py,sha256=
|
|
116
|
-
databao_context_engine/storage/migrate.py,sha256=
|
|
117
|
-
databao_context_engine/storage/migrations/V01__init.sql,sha256=
|
|
118
|
-
databao_context_engine/storage/models.py,sha256=
|
|
108
|
+
databao_context_engine/storage/exceptions/exceptions.py,sha256=zwJ8n-ekMhIH-bs9dvYqQuP4VfQ9rt0jdsptoojA5oU,174
|
|
109
|
+
databao_context_engine/storage/migrate.py,sha256=yGt9VdSsR0g3ZxesTCWs4eyJHk9EPIuJakeRpCFWEyY,4594
|
|
110
|
+
databao_context_engine/storage/migrations/V01__init.sql,sha256=hJvUoPIW-rQQB5DSDrPjGJQoey9bpDRz0FFoUyTe9Qo,1368
|
|
111
|
+
databao_context_engine/storage/models.py,sha256=TmoeyOhrFL9mu-C43XUtqOWGhkQu2h-sZQdYCjui5HM,580
|
|
119
112
|
databao_context_engine/storage/repositories/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
120
|
-
databao_context_engine/storage/repositories/chunk_repository.py,sha256=
|
|
121
|
-
databao_context_engine/storage/repositories/datasource_run_repository.py,sha256=k9kfAwEnEiYZoeasLzo-4AI-l8WAEUl3r9M9qVAkmVI,3952
|
|
113
|
+
databao_context_engine/storage/repositories/chunk_repository.py,sha256=nwDF8NeCwQJLlwtlvqILUccmWmQTfpg6Uf_WCDXm564,3681
|
|
122
114
|
databao_context_engine/storage/repositories/embedding_model_registry_repository.py,sha256=g91WCflYRc5jPDbW9RBp5HxWFsSIta4n8OYNwgoLv9c,2413
|
|
123
115
|
databao_context_engine/storage/repositories/embedding_repository.py,sha256=UCvr5mf2jTJgX_uMdLIMiN5NWa8Zn1U3HEr19TQRXAw,3278
|
|
124
|
-
databao_context_engine/storage/repositories/factories.py,sha256=
|
|
125
|
-
databao_context_engine/storage/repositories/
|
|
126
|
-
databao_context_engine/storage/repositories/vector_search_repository.py,sha256=Y87CPreJcVVUvWmcq4YyzdpthP8K42ag5_TrpovWqCw,2187
|
|
116
|
+
databao_context_engine/storage/repositories/factories.py,sha256=YUkVrHyf5UV2rZ7H97Fi_n0ZYxTwXy8_w5zJnMkO8Lw,970
|
|
117
|
+
databao_context_engine/storage/repositories/vector_search_repository.py,sha256=D6gebioSvqWslJw5zSleEG1Inj2w8MkPfbgGZFTZDfs,1944
|
|
127
118
|
databao_context_engine/storage/transaction.py,sha256=QpfE1VtgDd3_7OBzFYI3HPJJ7ESXkgCdcWukFkAjbSg,270
|
|
128
119
|
databao_context_engine/system/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
129
|
-
databao_context_engine/system/properties.py,sha256=
|
|
120
|
+
databao_context_engine/system/properties.py,sha256=mQ7-_PZeYSESYn1cMUQ0IK7rJEnbhc7t4WesFjAgo-Q,429
|
|
130
121
|
databao_context_engine/templating/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
131
122
|
databao_context_engine/templating/renderer.py,sha256=W2-0IGStAp6oxANmsKs_Z-UoIR6Gt_c4ILYFa3Hruo4,662
|
|
132
|
-
databao_context_engine-0.1.
|
|
133
|
-
databao_context_engine-0.1.
|
|
134
|
-
databao_context_engine-0.1.
|
|
135
|
-
databao_context_engine-0.1.
|
|
123
|
+
databao_context_engine-0.1.3.dist-info/WHEEL,sha256=eycQt0QpYmJMLKpE3X9iDk8R04v2ZF0x82ogq-zP6bQ,79
|
|
124
|
+
databao_context_engine-0.1.3.dist-info/entry_points.txt,sha256=5EeQJ1W8zEFh4HuF1bs2zBeoP408oiwuM9UrkJiurgI,138
|
|
125
|
+
databao_context_engine-0.1.3.dist-info/METADATA,sha256=81FImIbcFo2PNXdEHjECQzrL7wCMTBpUc51Px6Fv7Go,3329
|
|
126
|
+
databao_context_engine-0.1.3.dist-info/RECORD,,
|