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_storeadlı 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ırEgzersiz talimatları
__init__()yönteminde birvector_storeparametresi kabul et.forward()yöntemine parametre olarakqueryekle.- Benzerlik aramasından dönecek ilgili belge sayısını belirlemek için
self.kdeğ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."