CommencerCommencer gratuitement

Création d'une fonction de recherche

Un processus clé du flux de travail RAG (Retrieval Augmented Generation) consiste à extraire des données de la base de données. Dans cet exercice, vous allez concevoir une fonction personnalisée appelée « retrieve() » qui exécutera ce processus crucial dans le dernier exercice du cours.

Cet exercice fait partie du cours

Bases de données vectorielles pour les intégrations avec Pinecone

Afficher le cours

Instructions

  • Veuillez initialiser le client Pinecone avec votre clé API (le client OpenAI est disponible à l'adresse client).
  • Définissez la fonction « retrieve » qui prend quatre paramètres : « query », « top_k », « namespace » et « emb_model ».
  • Intégrez l'query s d'entrée à l'aide de l'argument emb_model.
  • top_k Récupérez les vecteurs similaires à query_emb avec des métadonnées, en spécifiant l'namespace fournie à la fonction en tant qu'argument.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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