|
5 | 5 | from azure.cosmos.agent_memory._utils import ( |
6 | 6 | DEFAULT_TTL_BY_TYPE, |
7 | 7 | _build_container_kwargs, |
| 8 | + _container_policies, |
8 | 9 | _make_memory, |
9 | 10 | _resolve_distance_function, |
10 | 11 | _resolve_embedding_data_type, |
11 | 12 | _resolve_full_text_language, |
| 13 | + _resolve_vector_index_type, |
12 | 14 | compute_content_hash, |
13 | 15 | normalize_ai_foundry_endpoint, |
14 | 16 | ) |
@@ -227,6 +229,48 @@ def test_resolve_distance_function_invalid_raises(monkeypatch): |
227 | 229 | _resolve_distance_function(None) |
228 | 230 |
|
229 | 231 |
|
| 232 | +def test_resolve_vector_index_type_defaults(monkeypatch): |
| 233 | + monkeypatch.delenv("AI_FOUNDRY_EMBEDDING_VECTOR_INDEX_TYPE", raising=False) |
| 234 | + assert _resolve_vector_index_type(None) == "diskANN" |
| 235 | + |
| 236 | + |
| 237 | +def test_resolve_vector_index_type_from_env(monkeypatch): |
| 238 | + monkeypatch.setenv("AI_FOUNDRY_EMBEDDING_VECTOR_INDEX_TYPE", "quantizedFlat") |
| 239 | + assert _resolve_vector_index_type(None) == "quantizedFlat" |
| 240 | + |
| 241 | + |
| 242 | +def test_resolve_vector_index_type_explicit_overrides_env(monkeypatch): |
| 243 | + monkeypatch.setenv("AI_FOUNDRY_EMBEDDING_VECTOR_INDEX_TYPE", "quantizedFlat") |
| 244 | + assert _resolve_vector_index_type("flat") == "flat" |
| 245 | + |
| 246 | + |
| 247 | +def test_resolve_vector_index_type_invalid_raises(monkeypatch): |
| 248 | + monkeypatch.setenv("AI_FOUNDRY_EMBEDDING_VECTOR_INDEX_TYPE", "hnsw") |
| 249 | + with pytest.raises(ConfigurationError): |
| 250 | + _resolve_vector_index_type(None) |
| 251 | + |
| 252 | + |
| 253 | +def test_container_policies_defaults_to_diskann(): |
| 254 | + _, indexing_policy, _ = _container_policies( |
| 255 | + embedding_dimensions=1536, |
| 256 | + embedding_data_type="float32", |
| 257 | + distance_function="cosine", |
| 258 | + full_text_language="en-US", |
| 259 | + ) |
| 260 | + assert indexing_policy["vectorIndexes"] == [{"path": "/embedding", "type": "diskANN"}] |
| 261 | + |
| 262 | + |
| 263 | +def test_container_policies_uses_supplied_vector_index_type(): |
| 264 | + _, indexing_policy, _ = _container_policies( |
| 265 | + embedding_dimensions=1536, |
| 266 | + embedding_data_type="float32", |
| 267 | + distance_function="cosine", |
| 268 | + full_text_language="en-US", |
| 269 | + vector_index_type="quantizedFlat", |
| 270 | + ) |
| 271 | + assert indexing_policy["vectorIndexes"] == [{"path": "/embedding", "type": "quantizedFlat"}] |
| 272 | + |
| 273 | + |
230 | 274 | def test_resolve_full_text_language_defaults(monkeypatch): |
231 | 275 | monkeypatch.delenv("COSMOS_DB_FULL_TEXT_LANGUAGE", raising=False) |
232 | 276 | assert _resolve_full_text_language(None) == "en-US" |
|
0 commit comments