MulaiMulai sekarang secara gratis

Membangun fungsi retrieval

Proses kunci dalam alur kerja Retrieval Augmented Generation (RAG) adalah mengambil data dari basis data. Pada latihan ini, Anda akan merancang fungsi kustom bernama retrieve() yang akan menjalankan proses krusial ini di latihan terakhir kursus.

Latihan ini adalah bagian dari kursus

Database Vektor untuk Embeddings dengan Pinecone

Lihat Kursus

Petunjuk latihan

  • Inisialisasi klien Pinecone dengan API key Anda (klien OpenAI tersedia sebagai client).
  • Definisikan fungsi retrieve yang menerima empat parameter: query, top_k, namespace, dan emb_model.
  • Buat embedding untuk query masukan menggunakan argumen emb_model.
  • Ambil top_k vektor yang paling mirip dengan query_emb beserta metadata, dengan menetapkan namespace yang diberikan ke fungsi sebagai argumen.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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)
Edit dan Jalankan Kode