ÎncepețiÎncepe gratuit

Construirea unei funcții de regăsire

Un pas esențial în fluxul de lucru Retrieval Augmented Generation (RAG) este regăsirea datelor din baza de date. În acest exercițiu, vei crea o funcție personalizată numită retrieve(), care va îndeplini acest rol crucial în exercițiul final al cursului.

Acest exercițiu face parte din cursul

Crearea aplicațiilor AI cu Pinecone

Vezi cursul

Instrucțiuni pentru exercițiu

  • Inițializează clientul Pinecone folosind cheia ta API (clientul OpenAI este disponibil ca client).
  • Definește funcția retrieve, care primește patru parametri: query, top_k, namespace și emb_model.
  • Generează încorporarea (embedding) pentru query folosind argumentul emb_model.
  • Regăsește cei mai similari top_k vectori față de query_emb, împreună cu metadatele, specificând namespace-ul transmis ca argument funcției.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul