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

Pinecone ile Vektör Veritabanları ve Embeddings

kursunun bir parçasıdır
Kursu Görüntüle

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ı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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