В этом руководстве предлагается практический подход к реализации приложения с использованием вызова функций с помощью Gemma. Этот метод можно применить к различным версиям модели Gemma путем тщательного оперативного проектирования. Дополнительную информацию можно найти в статье Beyond the Chatbot: Agentic AI with Gemma .
Объяснение вызовов функций
Общая структура вызова функций включает несколько ключевых компонентов, позволяющих Gemma взаимодействовать с внешними инструментами или API.
Опишите инструменты
Вы сообщаете модели об «инструментах» (функциях), которые она может использовать. Это включает в себя:- Что делает инструмент (описание)
- Какая информация нужна инструменту (параметры)
Пользователь задает вопрос
Вы задаете модели вопрос или даете ей заданиеДжемма решает
Модель определяет, нужен ли ей инструмент для ответа на ваш вопрос.Джемма просит инструмент
Если необходим инструмент, Gemma сгенерирует код, обернутый ```tool_code```Инструмент делает свою работу
Инструмент (функция) берет информацию из модели и делает то, что должен.Инструмент дает результаты
Gemma ожидает получить результат обратно в ```tool_output```Джемма дает окончательный ответ
Модель использует результаты инструмента, чтобы дать вам полный и точный ответ.
Полезные советы
- Схема JSON . Использование схемы JSON для определений параметров, хотя и не является обязательным, дает преимущества согласованной структуры и автоматической проверки.
- Четкое понимание : качество описания функции имеет решающее значение для того, чтобы модель могла правильно определить, когда ее использовать.
- Обработка ошибок . Надежная обработка ошибок необходима для управления случаями, когда вызов функции завершается неудачно или возвращает неожиданные результаты.
- Итеративный процесс . Иногда между моделью и вызовами функций происходит несколько этапов взаимодействия.
Примеры подсказок и выходных данных
Код этого приложения вы можете найти в репозитории кода Gemma Cookbook .
Шаг 1 и 2: Опишите инструмент и поставьте задачу.
Сырьё: Забавное изображение кота.
Текстовый ввод:
If you decide to invoke any of the function(s), it should be wrapped with ```tool_code```.
You have access to the following tools.
* `generate_meme(image, top_text, middle_text, bottom_text)`: Generate a meme with the given parameters
Make a funny meme with this. "meme.jpg"
Шаг 3. Джемма принимает решение и запрашивает инструмент.
Это приглашение приведет к следующему ответу:
Okay, here's a funny meme based on the image of the surprised cat: ```tool_code generate_meme(image="meme.jpg", top_text="Me when I hear a creak", middle_text="Is it safe?", bottom_text="Probably not.") ```
Шаг 4. Инструмент выполняет свою работу
Вы будете обрабатывать выходные данные модели, находя блоки кода, анализируя аргументы функции и выполняя функции.