Запити та оновлення бази даних

Вступ до Embeddings з OpenAI API

Emmanuel Pire

Senior Software Engineer, DataCamp

Виконання запитів до бази

Запит «movies where people sing a lot» передається в модель ембеддингів, обчислюються косинусні відстані, а фінальні результати зберігаються.

Вступ до Embeddings з OpenAI API

Виконання запитів до бази

Пошуковий запит напряму передається у векторну базу для створення ембеддингу, яка вже містить вбудовані документи.

Вступ до Embeddings з OpenAI API

Отримання колекції

from chromadb.utils.embedding_functions import OpenAIEmbeddingFunction

collection = client.get_collection(
    name="netflix_titles", 
    embedding_function=OpenAIEmbeddingFunction(api_key="...")
)
  • Потрібно вказати ту саму функцію ембеддингів, що використовувалась під час додавання даних до колекції
Вступ до Embeddings з OpenAI API

Запит до колекції

result = collection.query(
  query_texts=["movies where people sing a lot"],
  n_results=3
)
print(result)
{'ids': [['s4068', 's293', 's2213']],
 'embeddings': None,
 'documents': [['Title: Quién te cantará (Movie)\nDescription: When a near-...',
   'Title: Quartet (Movie)\nDescription: To save their posh retirement home, ...',
   'Title: Sing On! Spain (TV Show)\nDescription: In this fast-paced, high-...']],
 'metadatas': [[None, None, None]],
 'distances': [[0.350419282913208, 0.36049118638038635, 0.37080681324005127]]
Вступ до Embeddings з OpenAI API

query() повертає dict з кількома ключами:

  • ids: ідентифікатори повернених елементів
  • embeddings: ембеддинги повернених елементів
  • documents: початкові тексти повернених елементів
  • metadatas: метадані повернених елементів
  • distances: відстані елементів від тексту запиту
{'ids': [...],
 'embeddings': None,
 'documents': [...],
 'metadatas': [...],
 'distances': [...]}
Вступ до Embeddings з OpenAI API

Текст запиту підсвічено разом з ідентифікаторами трьох результатів, які він згенерував.

  • Перший список відповідає першому query_text
  • Кілька текстів запиту повернуть кілька списків
Вступ до Embeddings з OpenAI API

ID результатів запиту підсвічено разом з пов'язаними документами, метаданими та відстанями.

Вступ до Embeddings з OpenAI API

Оновлення колекції

collection.update(
  ids=["id-1", "id-2"],
  documents=["New document 1", "New document 2"]
)
  • Вкажіть лише поля для оновлення, інші лишаться без змін
  • Колекція автоматично створить ембеддинги
Вступ до Embeddings з OpenAI API

Upsert у колекції

collection.upsert(
  ids=["id-1", "id-2"],
  documents=["New document 1", "New document 2"]
)
  • Якщо ID відсутні → додати їх
  • Якщо ID наявні → оновити їх
Вступ до Embeddings з OpenAI API

Видалення

Видалення елементів із колекції

collection.delete(ids=["id-1", "id-2"])

 

Видалення всіх колекцій та елементів

client.reset()
  • Увага: це видалить усе з бази даних!
Вступ до Embeddings з OpenAI API

Давайте потренуємось!

Вступ до Embeddings з OpenAI API

Preparing Video For Download...