Interroger et mettre à jour la base de données

Introduction aux embeddings avec l’API OpenAI

Emmanuel Pire

Senior Software Engineer, DataCamp

Interroger la base de données

La requête « movies where people sing a lot » est envoyée à un modèle d'embedding, les distances cosinus sont calculées, et les résultats finaux sont stockés.

Introduction aux embeddings avec l’API OpenAI

Interroger la base de données

La requête de recherche est envoyée directement dans la base vectorielle pour l'embedding, qui contient déjà les documents vectorisés.

Introduction aux embeddings avec l’API OpenAI

Récupérer la collection

from chromadb.utils.embedding_functions import OpenAIEmbeddingFunction

collection = client.get_collection(
    name="netflix_titles", 
    embedding_function=OpenAIEmbeddingFunction(api_key="...")
)
  • Vous devez préciser la même fonction d'embedding que lors de l'ajout des données à la collection
Introduction aux embeddings avec l’API OpenAI

Interroger la collection

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]]
Introduction aux embeddings avec l’API OpenAI

query() renvoie un dict avec plusieurs clés :

  • ids : les identifiants des éléments retournés
  • embeddings : les embeddings des éléments retournés
  • documents : les textes sources des éléments retournés
  • metadatas : les métadonnées des éléments retournés
  • distances : les distances des éléments par rapport au texte de requête
{'ids': [...],
 'embeddings': None,
 'documents': [...],
 'metadatas': [...],
 'distances': [...]}
Introduction aux embeddings avec l’API OpenAI

Le texte de la requête est mis en évidence avec les IDs des trois résultats renvoyés.

  • La première liste correspond au premier query_text
  • Plusieurs textes de requête renvoient plusieurs listes
Introduction aux embeddings avec l’API OpenAI

Les IDs des résultats sont mis en évidence avec leurs documents, métadonnées et distances associés.

Introduction aux embeddings avec l’API OpenAI

Mettre à jour une collection

collection.update(
  ids=["id-1", "id-2"],
  documents=["New document 1", "New document 2"]
)
  • Incluez uniquement les champs à mettre à jour ; les autres restent inchangés
  • La collection créera automatiquement les embeddings
Introduction aux embeddings avec l’API OpenAI

Upsert d'une collection

collection.upsert(
  ids=["id-1", "id-2"],
  documents=["New document 1", "New document 2"]
)
  • Si des IDs manquent → les ajouter
  • Si des IDs existent → les mettre à jour
Introduction aux embeddings avec l’API OpenAI

Suppression

Supprimer des éléments d'une collection

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

 

Supprimer toutes les collections et tous les éléments

client.reset()
  • Avertissement : cela supprimera tout dans la base de données !
Introduction aux embeddings avec l’API OpenAI

Passons à la pratique !

Introduction aux embeddings avec l’API OpenAI

Preparing Video For Download...