|
38 | 38 | docs = [ |
39 | 39 | Document(page_content=texts[i], metadata=metadatas[i]) for i in range(len(texts)) |
40 | 40 | ] |
| 41 | +id_column_as_metadata = [{"id": str(i)} for i in range(len(texts))] |
41 | 42 |
|
42 | 43 | embeddings = [embeddings_service.embed_query(texts[i]) for i in range(len(texts))] |
43 | 44 |
|
@@ -154,6 +155,29 @@ async def test_post_init(self, engine): |
154 | 155 | metadata_json_column="mymeta", |
155 | 156 | ) |
156 | 157 |
|
| 158 | + async def test_id_metadata_column(self, engine): |
| 159 | + table_name = "id_metadata" + str(uuid.uuid4()) |
| 160 | + await engine._ainit_vectorstore_table( |
| 161 | + table_name, |
| 162 | + VECTOR_SIZE, |
| 163 | + metadata_columns=[Column("id", "TEXT")], |
| 164 | + ) |
| 165 | + custom_vs = await AsyncPostgresVectorStore.create( |
| 166 | + engine, |
| 167 | + embedding_service=embeddings_service, |
| 168 | + table_name=table_name, |
| 169 | + metadata_columns=["id"], |
| 170 | + ) |
| 171 | + ids = [str(uuid.uuid4()) for i in range(len(texts))] |
| 172 | + await custom_vs.aadd_texts(texts, id_column_as_metadata, ids) |
| 173 | + |
| 174 | + results = await afetch(engine, f'SELECT * FROM "{table_name}"') |
| 175 | + assert len(results) == 3 |
| 176 | + assert results[0]["id"] == "0" |
| 177 | + assert results[1]["id"] == "1" |
| 178 | + assert results[2]["id"] == "2" |
| 179 | + await aexecute(engine, f'DROP TABLE IF EXISTS "{table_name}"') |
| 180 | + |
157 | 181 | async def test_aadd_texts(self, engine, vs): |
158 | 182 | ids = [str(uuid.uuid4()) for i in range(len(texts))] |
159 | 183 | await vs.aadd_texts(texts, ids=ids) |
|
0 commit comments