Spaces:
Sleeping
Sleeping
A newer version of the Gradio SDK is available:
6.6.0
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-агента з набором інструментів для роботи з датасетом сільськогосподарських досліджень. Ось що було реалізовано:
Основні компоненти:
LLM-агент з функціональним викликом (Function Calling)
- Реалізовано клас
AgriculturalAgentвllm_agent.py, який використовує LiteLLM для взаємодії з Groq API - Агент підтримує багатоітераційну обробку запитів з автоматичним викликом функцій
- Реалізовано систему управління історією розмови для контекстної обробки запитів
- Реалізовано клас
Набір інструментів (Tools/Functions)
search_agricultural_documents- пошук документів за ключовими словамиget_document_details- отримання детальної інформації про конкретний документbrowse_topics- перегляд документів за темами або випадковий вибірget_dataset_info- отримання інформації про датасет- Всі функції реалізовані в
agent_functions.pyз описом параметрів для LLM
Обробка датасету
- Реалізовано
DatasetHandlerвdataset_handler.pyдля роботи з датасетом CGIAR - Підтримка streaming-режиму для ефективної роботи з великим датасетом (45,232 документів)
- Реалізовано пошук за ключовими словами в заголовках, анотаціях та ключових словах
- Обробка помилок та обмеження часу виконання пошуку
- Реалізовано
Веб-інтерфейс
- Створено інтерфейс на базі Gradio (
app.py) - Поле для введення API ключа (без зберігання в коді)
- Чат-інтерфейс для взаємодії з агентом
- Інформаційні блоки з описом можливостей та прикладами використання
- Створено інтерфейс на базі Gradio (
Інтеграція з LLM
- Використання LiteLLM для уніфікованої роботи з різними LLM провайдерами
- Налаштування системних промптів для спеціалізації агента на сільськогосподарській тематиці
- Автоматичне визначення необхідності виклику функцій на основі запиту користувача
Технічні особливості:
- Streaming режим: Датасет завантажується в режимі streaming для швидшого старту та економії пам'яті
- Обробка помилок: Реалізовано обробку помилок на всіх рівнях (завантаження датасету, пошук, виклики LLM)
- Обмеження пошуку: Для streaming-режиму встановлено обмеження на кількість перевірених документів (300) для швидкої відповіді
- Багатоітераційна обробка: Агент може виконувати кілька викликів функцій підряд для повної відповіді на запит
- Захист від циклів: Реалізовано захист від нескінченних циклів при однакових викликах функцій
Відмінності від запропонованого варіанту:
Замість агента для прийняття іспиту з курсу NLP, було обрано реалізацію агента для роботи з датасетом сільськогосподарських досліджень, що дозволяє продемонструвати:
- Роботу з реальним великим датасетом
- Пошук та фільтрацію інформації
- Структуровану роботу з документами
- Практичне застосування LLM-агентів для інформаційного пошуку
Acknowledgments
- Dataset: CGIAR/gardian-ai-ready-docs