BaşlayınÜcretsiz başlayın

Bir getirici (retrieval) fonksiyonu oluşturma

Retrieval Augmented Generation (RAG) iş akışında temel adımlardan biri, veritabanından veri getirmektir. Bu egzersizde, kursun final egzersizinde kritik rol oynayacak olan retrieve() adında özel bir fonksiyon tasarlayacaksın.

Bu egzersiz, kursun bir parçasıdır

Pinecone ile Vektör Veritabanları ve Embeddings

Kursa Göz Atın

Egzersiz talimatları

  • Pinecone istemcisini API anahtarınla başlat (OpenAI istemcisi client olarak hazır).
  • Dört parametre alan retrieve fonksiyonunu tanımla: query, top_k, namespace ve emb_model.
  • emb_model argümanını kullanarak giriş query ifadesini embed et.
  • Fonksiyona argüman olarak verilen namespacei belirterek, query_emb ile en benzer top_k vektörü üstverileriyle birlikte getir.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

# 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)
Kodu Düzenle ve Çalıştır