|
64 | 64 | }, |
65 | 65 | { |
66 | 66 | "cell_type": "code", |
67 | | - "execution_count": 1, |
| 67 | + "execution_count": null, |
68 | 68 | "metadata": { |
69 | 69 | "tags": [] |
70 | 70 | }, |
|
108 | 108 | }, |
109 | 109 | { |
110 | 110 | "cell_type": "code", |
111 | | - "execution_count": 2, |
| 111 | + "execution_count": null, |
112 | 112 | "metadata": { |
113 | 113 | "tags": [] |
114 | 114 | }, |
|
143 | 143 | " await pg_engine.ainit_vectorstore_table(\n", |
144 | 144 | " table_name=TABLE_NAME,\n", |
145 | 145 | " vector_size=VECTOR_SIZE,\n", |
146 | | - " id_column=Column(name=\"id\", data_type=\"INTEGER\", nullable=False),\n", |
147 | 146 | " metadata_columns=[\n", |
| 147 | + " Column(\"likes\", \"INTEGER\"),\n", |
148 | 148 | " Column(\"location\", \"TEXT\"),\n", |
149 | 149 | " Column(\"topic\", \"TEXT\"),\n", |
150 | 150 | " ],\n", |
|
178 | 178 | }, |
179 | 179 | { |
180 | 180 | "cell_type": "code", |
181 | | - "execution_count": 5, |
| 181 | + "execution_count": null, |
182 | 182 | "metadata": { |
183 | 183 | "colab": { |
184 | 184 | "base_uri": "https://localhost:8080/" |
|
226 | 226 | " engine=pg_engine,\n", |
227 | 227 | " table_name=TABLE_NAME,\n", |
228 | 228 | " embedding_service=embedding,\n", |
229 | | - " id_column=\"id\",\n", |
230 | 229 | " metadata_columns=[\"location\", \"topic\"]\n", |
231 | 230 | ")" |
232 | 231 | ] |
|
260 | 259 | " Document(\n", |
261 | 260 | " id=uuid.uuid4(),\n", |
262 | 261 | " page_content=\"there are cats in the pond\",\n", |
263 | | - " metadata={\"id\": 1, \"location\": \"pond\", \"topic\": \"animals\"},\n", |
| 262 | + " metadata={\"likes\": 1, \"location\": \"pond\", \"topic\": \"animals\"},\n", |
264 | 263 | " ),\n", |
265 | 264 | " Document(\n", |
266 | 265 | " id=uuid.uuid4(),\n", |
267 | 266 | " page_content=\"ducks are also found in the pond\",\n", |
268 | | - " metadata={\"id\": 2, \"location\": \"pond\", \"topic\": \"animals\"},\n", |
| 267 | + " metadata={\"likes\": 30, \"location\": \"pond\", \"topic\": \"animals\"},\n", |
269 | 268 | " ),\n", |
270 | 269 | " Document(\n", |
271 | 270 | " id=uuid.uuid4(),\n", |
272 | 271 | " page_content=\"fresh apples are available at the market\",\n", |
273 | | - " metadata={\"id\": 3, \"location\": \"market\", \"topic\": \"food\"},\n", |
| 272 | + " metadata={\"likes\": 20, \"location\": \"market\", \"topic\": \"food\"},\n", |
274 | 273 | " ),\n", |
275 | 274 | " Document(\n", |
276 | 275 | " id=uuid.uuid4(),\n", |
277 | 276 | " page_content=\"the market also sells fresh oranges\",\n", |
278 | | - " metadata={\"id\": 4, \"location\": \"market\", \"topic\": \"food\"},\n", |
| 277 | + " metadata={\"likes\": 5, \"location\": \"market\", \"topic\": \"food\"},\n", |
279 | 278 | " ),\n", |
280 | 279 | "]\n", |
281 | 280 | "\n", |
|
295 | 294 | { |
296 | 295 | "cell_type": "code", |
297 | 296 | "execution_count": null, |
298 | | - "metadata": {}, |
| 297 | + "metadata": { |
| 298 | + "tags": [] |
| 299 | + }, |
299 | 300 | "outputs": [], |
300 | 301 | "source": [ |
301 | 302 | "# We'll use the ID of the first doc to delete it\n", |
|
315 | 316 | { |
316 | 317 | "cell_type": "code", |
317 | 318 | "execution_count": null, |
318 | | - "metadata": {}, |
| 319 | + "metadata": { |
| 320 | + "tags": [] |
| 321 | + }, |
319 | 322 | "outputs": [], |
320 | 323 | "source": [ |
321 | 324 | "query = \"I'd like a fruit.\"\n", |
|
334 | 337 | { |
335 | 338 | "cell_type": "code", |
336 | 339 | "execution_count": null, |
337 | | - "metadata": {}, |
| 340 | + "metadata": { |
| 341 | + "tags": [] |
| 342 | + }, |
338 | 343 | "outputs": [], |
339 | 344 | "source": [ |
340 | 345 | "query_vector = embedding.embed_query(query)\n", |
|
359 | 364 | "\n", |
360 | 365 | "| Operator | Meaning/Category |\n", |
361 | 366 | "|-----------|-------------------------|\n", |
362 | | - "| $eq | Equality (==) |\n", |
363 | | - "| $ne | Inequality (!=) |\n", |
364 | | - "| $lt | Less than (<) |\n", |
365 | | - "| $lte | Less than or equal (<=) |\n", |
366 | | - "| $gt | Greater than (>) |\n", |
367 | | - "| $gte | Greater than or equal (>=) |\n", |
368 | | - "| $in | Special Cased (in) |\n", |
369 | | - "| $nin | Special Cased (not in) |\n", |
370 | | - "| $between | Special Cased (between) |\n", |
371 | | - "| $exists | Special Cased (is null) |\n", |
372 | | - "| $like | Text (like) |\n", |
373 | | - "| $ilike | Text (case-insensitive like) |\n", |
374 | | - "| $and | Logical (and) |\n", |
375 | | - "| $or | Logical (or) |" |
| 367 | + "| \\$eq | Equality (==) |\n", |
| 368 | + "| \\$ne | Inequality (!=) |\n", |
| 369 | + "| \\$lt | Less than (<) |\n", |
| 370 | + "| \\$lte | Less than or equal (<=) |\n", |
| 371 | + "| \\$gt | Greater than (>) |\n", |
| 372 | + "| \\$gte | Greater than or equal (>=) |\n", |
| 373 | + "| \\$in | Special Cased (in) |\n", |
| 374 | + "| \\$nin | Special Cased (not in) |\n", |
| 375 | + "| \\$between | Special Cased (between) |\n", |
| 376 | + "| \\$exists | Special Cased (is null) |\n", |
| 377 | + "| \\$like | Text (like) |\n", |
| 378 | + "| \\$ilike | Text (case-insensitive like) |\n", |
| 379 | + "| \\$and | Logical (and) |\n", |
| 380 | + "| \\$or | Logical (or) |\n" |
376 | 381 | ] |
377 | 382 | }, |
378 | 383 | { |
|
383 | 388 | }, |
384 | 389 | "outputs": [], |
385 | 390 | "source": [ |
386 | | - "query = \"meow\"\n", |
387 | | - "docs = await vectorstore.asimilarity_search(query, filter={\"topic\": \"food\"})\n", |
388 | | - "for doc in docs:\n", |
389 | | - " print(repr(doc))" |
| 391 | + "await vectorstore.asimilarity_search(\"birds\", filter={\"$or\": [{\"topic\": \"animals\"}, {\"location\": \"market\"}]})" |
| 392 | + ] |
| 393 | + }, |
| 394 | + { |
| 395 | + "cell_type": "code", |
| 396 | + "execution_count": null, |
| 397 | + "metadata": { |
| 398 | + "tags": [] |
| 399 | + }, |
| 400 | + "outputs": [], |
| 401 | + "source": [ |
| 402 | + "await vectorstore.asimilarity_search(\"apple\", filter={\"topic\": \"food\"})" |
| 403 | + ] |
| 404 | + }, |
| 405 | + { |
| 406 | + "cell_type": "code", |
| 407 | + "execution_count": null, |
| 408 | + "metadata": { |
| 409 | + "tags": [] |
| 410 | + }, |
| 411 | + "outputs": [], |
| 412 | + "source": [ |
| 413 | + "await vectorstore.asimilarity_search(\"apple\", filter={\"topic\": {\"$in\": [\"food\", \"animals\"]}})" |
| 414 | + ] |
| 415 | + }, |
| 416 | + { |
| 417 | + "cell_type": "code", |
| 418 | + "execution_count": null, |
| 419 | + "metadata": { |
| 420 | + "tags": [] |
| 421 | + }, |
| 422 | + "outputs": [], |
| 423 | + "source": [ |
| 424 | + "await vectorstore.asimilarity_search(\"sales of fruit\", filter={\"topic\": {\"$ne\": \"animals\"}})" |
390 | 425 | ] |
391 | 426 | }, |
392 | 427 | { |
|
408 | 443 | { |
409 | 444 | "cell_type": "code", |
410 | 445 | "execution_count": null, |
411 | | - "metadata": {}, |
| 446 | + "metadata": { |
| 447 | + "tags": [] |
| 448 | + }, |
412 | 449 | "outputs": [], |
413 | 450 | "source": [ |
414 | 451 | "from langchain_postgres.v2.indexes import IVFFlatIndex\n", |
|
429 | 466 | { |
430 | 467 | "cell_type": "code", |
431 | 468 | "execution_count": null, |
432 | | - "metadata": {}, |
| 469 | + "metadata": { |
| 470 | + "tags": [] |
| 471 | + }, |
433 | 472 | "outputs": [], |
434 | 473 | "source": [ |
435 | 474 | "await vectorstore.areindex() # Re-index using default index name" |
|
447 | 486 | { |
448 | 487 | "cell_type": "code", |
449 | 488 | "execution_count": null, |
450 | | - "metadata": {}, |
| 489 | + "metadata": { |
| 490 | + "tags": [] |
| 491 | + }, |
451 | 492 | "outputs": [], |
452 | 493 | "source": [ |
453 | 494 | "await vectorstore.adrop_vector_index() # Drop index using default name" |
|
0 commit comments