llm-agent / README.md
=
Add Hugging Face Spaces configuration to README
eb457ae

A newer version of the Gradio SDK is available: 6.6.0

Upgrade
metadata
title: LLM Agent for Agricultural Research
emoji: 🌾
colorFrom: green
colorTo: yellow
sdk: gradio
sdk_version: 4.0.0
app_file: app.py
pinned: false

Що було зроблено

Цей проєкт реалізує LLM-агента з набором інструментів для роботи з датасетом сільськогосподарських досліджень. Ось що було реалізовано:

Основні компоненти:

  1. LLM-агент з функціональним викликом (Function Calling)

    • Реалізовано клас AgriculturalAgent в llm_agent.py, який використовує LiteLLM для взаємодії з Groq API
    • Агент підтримує багатоітераційну обробку запитів з автоматичним викликом функцій
    • Реалізовано систему управління історією розмови для контекстної обробки запитів
  2. Набір інструментів (Tools/Functions)

    • search_agricultural_documents - пошук документів за ключовими словами
    • get_document_details - отримання детальної інформації про конкретний документ
    • browse_topics - перегляд документів за темами або випадковий вибір
    • get_dataset_info - отримання інформації про датасет
    • Всі функції реалізовані в agent_functions.py з описом параметрів для LLM
  3. Обробка датасету

    • Реалізовано DatasetHandler в dataset_handler.py для роботи з датасетом CGIAR
    • Підтримка streaming-режиму для ефективної роботи з великим датасетом (45,232 документів)
    • Реалізовано пошук за ключовими словами в заголовках, анотаціях та ключових словах
    • Обробка помилок та обмеження часу виконання пошуку
  4. Веб-інтерфейс

    • Створено інтерфейс на базі Gradio (app.py)
    • Поле для введення API ключа (без зберігання в коді)
    • Чат-інтерфейс для взаємодії з агентом
    • Інформаційні блоки з описом можливостей та прикладами використання
  5. Інтеграція з LLM

    • Використання LiteLLM для уніфікованої роботи з різними LLM провайдерами
    • Налаштування системних промптів для спеціалізації агента на сільськогосподарській тематиці
    • Автоматичне визначення необхідності виклику функцій на основі запиту користувача

Технічні особливості:

  • Streaming режим: Датасет завантажується в режимі streaming для швидшого старту та економії пам'яті
  • Обробка помилок: Реалізовано обробку помилок на всіх рівнях (завантаження датасету, пошук, виклики LLM)
  • Обмеження пошуку: Для streaming-режиму встановлено обмеження на кількість перевірених документів (300) для швидкої відповіді
  • Багатоітераційна обробка: Агент може виконувати кілька викликів функцій підряд для повної відповіді на запит
  • Захист від циклів: Реалізовано захист від нескінченних циклів при однакових викликах функцій

Відмінності від запропонованого варіанту:

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

  • Роботу з реальним великим датасетом
  • Пошук та фільтрацію інформації
  • Структуровану роботу з документами
  • Практичне застосування LLM-агентів для інформаційного пошуку

Acknowledgments