AI Ustoz UZ: изучайте искусственный интеллект на узбекском языке

Простой «агент»: программа, выбирающая инструмент

Начальный уровень · урок 5 · около 14 мин

Агент — это программа, которая разбивает задачу на шаги и при необходимости пользуется инструментами (калькулятор, поиск, файл). Типичный цикл: модель видит задачу и определяет, какой инструмент и с какими аргументами вызвать (часто в виде JSON); программа запускает инструмент и возвращает результат модели; модель строит ответ на основе этого результата.

В этом уроке самой модели нет: вместо неё даётся готовый словарь-«вызов», а мы пишем часть программы: по имени инструмента в вызове запускаем нужную функцию. Это упрощённый пример; в настоящих агентах есть и обработка ошибок, несколько шагов, разрешения и так далее.

def kvadrat(son):
    return son * son

VOSITALAR = {"kvadrat": kvadrat}

def agent(chaqiriq):
    nom = chaqiriq["vosita"]
    if nom in VOSITALAR:
        return VOSITALAR[nom](chaqiriq["son"])
    return "vosita topilmadi"

print(agent({"vosita": "kvadrat", "son": 7}))
print(agent({"vosita": "qidiruv", "son": 7}))
Результат49
vosita topilmadi

Правило безопасности: давайте агенту только необходимые инструменты и проверяйте результат. Неизвестный или неверный вызов не должен ронять программу: ситуация «vosita topilmadi» выше — пример такой обработки.

Запомните

  • Агент = модель + инструменты + программа, запускающая инструменты.
  • Имя инструмента и аргументы передаются словарём (JSON).
  • Неизвестный вызов обрабатывайте без сбоя.

Упражнение

Кто выполняет точный арифметический расчёт в агентной системе?

Ответ и пояснение
  1. Инструмент (функция) в программе: модель вызывает его и получает результат обратно. (верный ответ)так расчёт выполняется проверяемым кодом и точно.
  2. Только модель, генерируя текст.в этом случае в длинных расчётах выше риск ошибки.
  3. Пользователь вручную.смысл агента как раз в автоматизации такой работы.

Упражнения с кодом

  1. Напишите функцию kalkulyator(a, b, amal): если amal равно +, -, * или /, она возвращает соответствующий результат.
    Подсказка: Для каждой операции напишите условие вроде if amal == "+": и сделайте return.
  2. Напишите функцию agent(chaqiriq): если значение vosita равно kalkulyator, она вызывает калькулятор с a, b, amal и возвращает результат; для другого инструмента возвращает текст vosita topilmadi.
    Подсказка: Проверьте chaqiriq["vosita"]; калькулятору передайте chaqiriq["a"], chaqiriq["b"] и chaqiriq["amal"].

Выполните упражнение в приложении.

Практическое задание

Добавьте в функцию kalkulyator случай деления на ноль: вместо ошибки пусть возвращается понятный текст.

  • Написал условие для деления на ноль
  • Проверил с операцией /

Словарь

Интерактивный режим: поиск, прогресс и упражнения на Python.