Začněte nyníZačněte zdarma

Stavovost záměrně: vytvoř nástroj pro RAG vyhledávání

V předchozí lekci jsi viděl/a, jak lze postavit znalostní bázi manuálů k domácím spotřebičům a prohledávat ji pomocí embeddingů.

Teď vytvoříš vlastní nástroj, který tuto vyhledávací logiku zabalí – agent ho pak může použít k odpovídání na otázky o spotřebičích.

Nástroj, který budeš psát, zdědí základní třídu Tool a bude mít jeden vstup: otázku týkající se obsluhy spotřebiče.

Máš k dispozici:

  • Proměnnou vector_store, která obsahuje předpřipravený FAISS index
  • Části dokumentů s obsahem manuálů ke spotřebičům, převedené na embeddingy a připravené k vyhledávání

Tvým úkolem je implementovat strukturu a logiku nástroje, který tuto znalostní bázi zpřístupní agentovi.

Toto cvičení je součástí kurzu

AI Agents with Hugging Face smolagents

Zobrazit kurz

Pokyny k cvičení

  • V metodě __init__() přijmi parametr vector_store.
  • Přidej query jako parametr metody forward().
  • Pomocí self.k nastav, kolik relevantních dokumentů má vyhledávání podobnosti vrátit.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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."
Upravit a spustit kód