Zacznij terazZacznij za darmo

Projektowanie ze stanem: tworzenie narzędzia RAG do wyszukiwania

W poprzedniej lekcji pokazano, jak zbudować bazę wiedzy opartą na wektorach z instrukcji obsługi urządzeń i jak przeszukiwać ją za pomocą osadzeń (embeddings).

Teraz stworzysz własne narzędzie, które opakuje tę logikę wyszukiwania — dzięki temu agent będzie mógł go używać do odpowiadania na pytania dotyczące urządzeń.

Narzędzie, które implementujesz, będzie podklasą klasy bazowej Tool i będzie przyjmować jedno wejście: pytanie dotyczące obsługi urządzenia.

Masz już dostęp do:

  • Zmiennej vector_store, która zawiera gotowy indeks FAISS
  • Fragmentów dokumentów z treścią instrukcji obsługi urządzeń, osadzonych i gotowych do przeszukiwania

Twoim zadaniem jest zaimplementowanie struktury i logiki narzędzia, które udostępni tę bazę wiedzy agentowi.

To ćwiczenie jest częścią kursu

Agenty AI z Hugging Face smolagents

Zobacz kurs

Instrukcje do ćwiczenia

  • Przyjmij parametr vector_store w metodzie __init__().
  • Dodaj query jako parametr metody forward().
  • Użyj self.k, aby określić, ile odpowiednich dokumentów ma zostać zwróconych przez wyszukiwanie podobieństwa.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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."
Edytuj i uruchom kod