CommencezCommencez gratuitement

Créer une fonction de repérage de documents

Une étape clé du flux de travail Retrieval Augmented Generation (RAG) consiste à repérer les données dans la base de données. Dans cet exercice, vous allez concevoir une fonction personnalisée appelée retrieve() qui effectuera ce processus essentiel dans l'exercice final du cours.

Cette activité fait partie du cours

Créer des applications d'IA avec Pinecone

Voir le cours

Instructions de l’exercice

  • Initialisez le client Pinecone avec votre clé d'API (le client OpenAI est disponible sous client).
  • Définissez la fonction retrieve qui prend quatre paramètres : query, top_k, namespace et emb_model.
  • Générez l'intégration (embedding) de l'entrée query en utilisant l'argument emb_model.
  • Repérez les top_k vecteurs les plus similaires à query_emb avec leurs métadonnées, en précisant l'argument namespace fourni à la fonction.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Initialize the Pinecone client
pc = Pinecone(api_key="____")
index = pc.Index('pinecone-datacamp')

# Define a retrieve function that takes four arguments: query, top_k, namespace, and emb_model
def retrieve(query, top_k, namespace, emb_model):
    # Encode the input query using OpenAI
    query_response = ____(
        input=____,
        model=____
    )
    
    query_emb = query_response.data[0].embedding
    
    # Query the index using the query_emb
    docs = index.query(vector=____, top_k=____, namespace=____, include_metadata=True)
    
    retrieved_docs = []
    sources = []
    for doc in docs['matches']:
        retrieved_docs.append(doc['metadata']['text'])
        sources.append((doc['metadata']['title'], doc['metadata']['url']))
    
    return retrieved_docs, sources

documents, sources = retrieve(
  query="How to build next-level Q&A with OpenAI",
  top_k=3,
  namespace='youtube_rag_dataset',
  emb_model="text-embedding-3-small"
)
print(documents)
print(sources)
Modifier et exécuter le code