ПочатиПочніть безкоштовно

Становість за задумом: створіть інструмент пошуку RAG

У попередньому уроці ви побачили, як можна побудувати й шукати базу знань із посібників для побутової техніки на основі векторів, використовуючи вкладення (embeddings — векторні представлення).

Тепер ви створите спеціальний інструмент, що інкапсулює цю логіку пошуку, щоб агент міг використовувати його для відповідей на запитання щодо роботи техніки.

Інструмент, який ви напишете, буде підкласом базового класу Tool і матиме один вхід: запитання про експлуатацію техніки.

У вас уже є доступ до:

  • Змінної vector_store, що містить попередньо збудований індекс FAISS
  • Фрагментів документів із вмістом посібників, перетворених на вкладення та готових до пошуку

Ваше завдання — реалізувати структуру та логіку інструменту, який зробить цю базу знань доступною для агента.

Ця вправа є частиною курсу

AI-агенти з Hugging Face smolagents

Переглянути курс

Інструкції до вправи

  • Прийміть параметр vector_store у методі __init__().
  • Додайте query як параметр методу forward().
  • Використайте self.k, щоб визначити, скільки релевантних документів слід повернути з пошуку за схожістю.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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."
Редагувати та запускати код