Kom igångKom igång gratis

Tillståndsstyrd design: Bygg ett RAG-sökverktyg

I föregående lektion såg du hur en vektorbaserad kunskapsbas med apparatmanualer kan byggas och sökas med hjälp av inbäddningar (embeddings – vektorrepresentationer).

Nu ska du bygga ett anpassat verktyg som kapslar in den här söklogiken, så att en agent kan använda det för att svara på frågor om apparater.

Verktyget du skriver kommer att ärva från basklassen Tool och exponera en indata: en fråga om hur en apparat används.

Du har redan tillgång till:

  • En variabel som heter vector_store, som innehåller ditt förbyggda FAISS-index
  • Dokumentfragment med innehåll från apparatmanualer, inbäddade och redo för sökning

Din uppgift är att implementera strukturen och logiken i verktyget som gör den här kunskapsbasen tillgänglig för en agent.

Den här övningen är en del av kursen

AI-agenter med Hugging Face smolagents

Visa kurs

Övningsinstruktioner

  • Ta emot en parameter vector_store i metoden __init__().
  • Lägg till query som parameter till metoden forward().
  • Använd self.k för att ange hur många relevanta dokument som ska returneras från likhetssökningen.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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."
Redigera och kör kod