|
23 | 23 | FakeEmbeddings,
|
24 | 24 | )
|
25 | 25 |
|
| 26 | +SCHEMA_NAME = os.environ.get("TEST_CRATEDB_DATABASE", "testdrive") |
| 27 | + |
26 | 28 | CONNECTION_STRING = CrateDBVectorSearch.connection_string_from_db_params(
|
27 | 29 | driver=os.environ.get("TEST_CRATEDB_DRIVER", "crate"),
|
28 | 30 | host=os.environ.get("TEST_CRATEDB_HOST", "localhost"),
|
29 | 31 | port=int(os.environ.get("TEST_CRATEDB_PORT", "4200")),
|
30 |
| - database=os.environ.get("TEST_CRATEDB_DATABASE", "testdrive"), |
| 32 | + database=SCHEMA_NAME, |
31 | 33 | user=os.environ.get("TEST_CRATEDB_USER", "crate"),
|
32 | 34 | password=os.environ.get("TEST_CRATEDB_PASSWORD", ""),
|
33 | 35 | )
|
34 | 36 |
|
35 |
| - |
36 |
| -# TODO: Try 1536 after https://github.com/crate/crate/pull/14699. |
37 |
| -# ADA_TOKEN_COUNT = 14 |
38 |
| -ADA_TOKEN_COUNT = 1024 |
39 |
| -# ADA_TOKEN_COUNT = 1536 |
| 37 | +ADA_TOKEN_COUNT = 1536 |
40 | 38 |
|
41 | 39 |
|
42 | 40 | @pytest.fixture
|
@@ -167,6 +165,25 @@ def test_cratedb_texts() -> None:
|
167 | 165 | assert output == [Document(page_content="foo")]
|
168 | 166 |
|
169 | 167 |
|
| 168 | +def test_cratedb_embedding_dimension() -> None: |
| 169 | + """Verify the `embedding` column uses the correct vector dimensionality.""" |
| 170 | + texts = ["foo", "bar", "baz"] |
| 171 | + docsearch = CrateDBVectorSearch.from_texts( |
| 172 | + texts=texts, |
| 173 | + collection_name="test_collection", |
| 174 | + embedding=ConsistentFakeEmbeddingsWithAdaDimension(), |
| 175 | + connection_string=CONNECTION_STRING, |
| 176 | + pre_delete_collection=True, |
| 177 | + ) |
| 178 | + with docsearch.Session() as session: |
| 179 | + result = session.execute(sa.text(f"SHOW CREATE TABLE {SCHEMA_NAME}.embedding")) |
| 180 | + record = result.first() |
| 181 | + if not record: |
| 182 | + raise ValueError("No data found") |
| 183 | + ddl = record[0] |
| 184 | + assert f'"embedding" FLOAT_VECTOR({ADA_TOKEN_COUNT})' in ddl |
| 185 | + |
| 186 | + |
170 | 187 | def test_cratedb_embeddings() -> None:
|
171 | 188 | """Test end to end construction with embeddings and search."""
|
172 | 189 | texts = ["foo", "bar", "baz"]
|
|
0 commit comments