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

Durum Odaklı Tasarım: Bir RAG Arama Aracı Oluştur

Önceki derste, cihaz kılavuzlarından oluşan vektör tabanlı bir bilgi tabanının gömüler kullanılarak nasıl kurulup aranabildiğini gördün.

Şimdi, bu arama mantığını sarmalayan özel bir araç oluşturacaksın ki bir ajan bunu cihazlarla ilgili soruları yanıtlamak için kullanabilsin.

Yazacağın araç, Tool temel sınıfından kalıtım alacak ve tek bir girdi sunacak: cihazın çalışmasıyla ilgili bir soru.

Elinde şunlar hazır:

  • Önceden oluşturulmuş FAISS indeksini içeren vector_store adlı bir değişken
  • Aramaya hazır, gömülmüş cihaz kılavuzu içerikleri (belge parçaları)

Görevin, bu bilgi tabanını bir ajanın erişimine açacak aracın yapı ve mantığını uygulamak.

Bu egzersiz

Hugging Face smolagents ile AI Agent'ları

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

Egzersiz talimatları

  • __init__() yönteminde bir vector_store parametresi kabul et.
  • forward() yöntemine parametre olarak query ekle.
  • Benzerlik aramasından dönecek ilgili belge sayısını belirlemek için self.k değerini kullan.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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