MulaiMulai sekarang secara gratis

Bertahan dengan Status: Bangun Alat Pencarian RAG

Pada pelajaran sebelumnya, Anda melihat bagaimana basis pengetahuan berbasis vektor untuk buku petunjuk peralatan dapat dibangun dan dicari menggunakan embedding.

Sekarang, Anda akan membangun alat kustom yang membungkus logika pencarian ini, sehingga agen dapat menggunakannya untuk menjawab pertanyaan terkait peralatan.

Alat yang Anda tulis akan menjadi subclass dari kelas dasar Tool dan mengekspos satu masukan: pertanyaan tentang pengoperasian peralatan

Anda sudah memiliki akses ke:

  • Variabel bernama vector_store, yang berisi indeks FAISS yang telah dibuat sebelumnya
  • Potongan dokumen berisi konten buku petunjuk peralatan, yang sudah di-embed dan siap dicari

Tugas Anda adalah mengimplementasikan struktur dan logika alat yang akan membuat basis pengetahuan ini dapat diakses oleh agen.

Latihan ini adalah bagian dari kursus

Agen AI dengan Hugging Face smolagents

Lihat Kursus

Petunjuk latihan

  • Terima parameter vector_store dalam metode __init__().
  • Tambahkan query sebagai parameter untuk metode forward().
  • Gunakan self.k untuk menetapkan berapa banyak dokumen relevan yang harus dikembalikan dari similarity search.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

class ApplianceSearchTool(Tool):
    name = "appliance_manual_search"
    description = "Search appliance manuals for maintenance and usage information"
    inputs = {"query": {"type": "string", "description": "Question about appliance operation"}}
    output_type = "string"

    # Pass the vector store into the constructor
    def __init__(self, ____, k=3):
        super().__init__()
        self.vector_store = vector_store
        self.k = k

    # Accept the query string as input to the forward method
    def forward(self, ____):
        # Use self.k here to specify how many chunks to return
        docs = self.vector_store.similarity_search(query, k=____)
        return "\n\n".join(doc.page_content for doc in docs) or "No relevant manual sections found."
Edit dan Jalankan Kode