Данная функция может быть использована для вызова любого внешнего API.
Бот помощник формирования примеров для API запросов: https://t.me/apollo_api_bot
Вот пример вызова функции для отправки сообщения через Telegram-бот:
Получи текст сообщения, токен бота у пользователя и ID пользователя в Telegram и вызови функцию `call_external_api` с параметрами:
{
"url": f'https://api.telegram.org/bot{bot_token}/sendMessage',
"method": "POST",
"data": {
"chat_id": user_id,
"text": "_ТЕКСТ_СООБЩЕНИЯ_"
}
}
{
"name": "call_api",
"description": "Вызов API с заданными параметрами, включая заголовки, данные и параметры в виде строк",
"parameters": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "URL API",
},
"method": {
"type": "string",
"description": "HTTP метод",
"enum": ["GET", "POST", "PUT", "DELETE"],
},
"headers": {
"type": "string",
"description": "Заголовки запроса в формате JSON",
},
"params": {
"type": "string",
"description": "Параметры запроса в формате JSON",
},
"data": {
"type": "string",
"description": "Данные для отправки в запросе в формате JSON",
},
"json": {
"type": "string",
"description": "Данные для отправки в формате JSON",
},
"file_url": {
"type": "string",
"description": "URL файла для загрузки",
},
"timeout": {
"type": "integer",
"description": "Таймаут запроса в секундах",
},
},
"required": ["url"],
},
},
Отправить вебхук в Make
Функция send_webhook_to_make предназначена для отправки данных на вебхук платформы Make. Она принимает два обязательных параметра: webhook_url, который представляет собой URL вебхука, и data, содержащие данные в формате JSON, которые необходимо отправить. Функция использует библиотеку requests для выполнения POST-запроса к указанному вебхуку. Если запрос успешен, функция возвращает ответ в формате JSON. В случае ошибки при отправке данных, функция возвращает сообщение об ошибке.
{
"name": "text_to_speach_elevenlabs",
"description": "Озвучивание текст (ElevenLabs)",
"parameters": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "Текст для озвучки",
},
"elevellabs_api_key": {
"type": "string",
"description": "API ключ от ElevenLabs",
},
"voice_id": {
"type": "string",
"description": "ID голоса ElevenLabs",
},
"limit": {
"type": "integer",
"description": "Количество символов для озвучивания. По умолчанию равно 200.",
},
"stability": {
"type": "integer",
"description": "Стабильность голоса. По умолчанию равно 5.",
},
"similarity_boost": {
"type": "integer",
"description": "Похожесть голоса. По умолчанию равно 5.",
},
},
"required": ["text", "elevellabs_api_key", "voice_id", "limit", "stability", "similarity_boost"]
},
},
Озвучивание файлов (ElevenLabs)
Озвучивание файлов (ElevenLabs)
{
"name": "file_to_speach",
"description": "Озвучивание файлов (ElevenLabs)",
"parameters": {
"type": "object",
"properties": {
"file_url": {
"type": "string",
"description": "Ссылка на файл в формате PDF, DOCX, XLSX, PPTX",
},
"elevellabs_api_key": {
"type": "string",
"description": "API ключ от ElevenLabs",
},
"voice_id": {
"type": "string",
"description": "ID голоса ElevenLabs",
},
"limit": {
"type": "integer",
"description": "Количество символов для озвучивания. По умолчанию равно 200.",
},
"stability": {
"type": "integer",
"description": "Стабильность голоса. По умолчанию равно 5.",
},
"similarity_boost": {
"type": "integer",
"description": "Похожесть голоса. По умолчанию равно 5.",
},
},
"required": ["file_url", "elevellabs_api_key", "voice_id", "limit", "stability", "similarity_boost"]
},
},
Изменение данных из таблицы Airtable
Функция изменяет данные в базе Airtable. Для этого вы должны передать в функцию API токен Airtable, ID базы, название таблицы, фильтр и новые данные в формате JSON {"Колонка" : "Значение"}.
{
"name": "write_airtable_data",
"description": "Запись данных в таблицу Airtable с возможностью задать фильтр и изменить нужные записи в таблице",
"parameters": {
"type": "object",
"properties": {
"base_id": {
"type": "string",
"description": "Идентификатор базы данных Airtable"
},
"table_name": {
"type": "string",
"description": "Название таблицы в Airtable"
},
"api_key": {
"type": "string",
"description": "API ключ для доступа к Airtable"
},
"filter": {
"type": "string",
"description": "Фильтр для выборки данных (необязательный), например: AND({Public}=1)"
},
"fields": {
"type": "string",
"description": "Строка вида: Поле1:Значение1, Поле2:Значение2"
}
},
"required": ["base_id", "table_name", "api_key", "fields"]
},
},
Получение данных из таблицы Airtable
Функция получает данные из базы Airtable. Для этого вы должны передать в функцию API токен Airtable, ID базы, название таблицы, фильтр и название колонок из которых вам нужны данные.
{
"name": "filter_airtable_data",
"description": "Получить записи из базы данных по заданным фильтрам",
"parameters": {
"type": "object",
"properties": {
"api_key": {
"type": "string",
"description": "API ключ для доступа к базе данных",
},
"base_id": {
"type": "string",
"description": "ID базы данных",
},
"table_name": {
"type": "string",
"description": "Название таблицы для запроса",
},
"filters": {
"type": "string",
"description": "Название таблицы для запроса",
},
"max_records": {
"type": "integer",
"description": "Максимальное количество записей для возврата. По умолчанию 1",
},
"fields": {
"type": "string",
"description": """JSON массив вида:```JSON\n[{"field": "Column1", "value": "Value1", "type": "select"},{"field": "Column2", "value": "Value2", "type": "text"},{"field": "Column3", "value": Value3, "type": "percent"},{"field": "Column4", "value": 0, "type": "checkbox"},{"field": "Column5", "value": "Value5", "type": "multi-select"},{"field": "Column6", "min": Value6_1, "max": Value6_2, "type": "range"},{"field": "Column7", "min": Value7_1, "max": Value7_2, "type": "range_percent"}]```. Не обязательный параметр.""",
},
"columns": {
"type": "string",
"description": "Список колонок, которые получить из таблицы в виде: `column1;column2;column3`. Не обязательный параметр",
},
},
"required": ["api_key", "base_id", "table_name", "max_records"],
},
},
Функция rapid_api_midjourney_generate_image предназначена для создания изображений на основе текстовых описаний и различных параметров.
Основной запрос: Вы задаете основной текст, который описывает, что вы хотите увидеть на изображении. Это обязательный элемент, без которого функция не сможет сработать.
Дополнительные запросы: Вы можете добавить вторичный текст, который уточняет ваш запрос. Например, если основной запрос — "кот", то вторичный может быть "в шляпе".
Вес запросов: Вы можете указать, насколько сильно вторичный запрос должен влиять на итоговое изображение. Это делается с помощью числового значения, где большее значение означает большее влияние.
Отрицательные запросы: Если есть что-то, что вы не хотите видеть на изображении, вы можете указать это. Например, "без собак".
Изображения для подсказок: Вы можете предоставить URL-адреса изображений, которые могут помочь в создании вашего изображения. Это может быть изображение стиля или персонажа.
Соотношение сторон: Вы можете задать ширину и высоту изображения, чтобы оно соответствовало вашим требованиям, например, для обложки книги или постера.
Стилизация и уникальность: Функция позволяет настроить уровень стилизации, странности и хаоса, чтобы изображение выглядело так, как вы хотите — от реалистичного до абстрактного.
Дополнительный текст: Вы также можете добавить текст, который будет использован для генерации, если это необходимо.
{
"name": "rapid_api_midjourney_generate_image_and_face_swap",
"description": "Generate an image based on prompts and parameters or face swap on image",
"parameters": {
"type": "object",
"properties": {
"rapid_api_key": {
"type": "string",
"description": "API key",
},
"textPrompt": {
"type": "string",
"description": "Primary text prompt for image generation",
},
"secondTextPrompt": {
"type": "string",
"description": "Secondary text prompt for image generation",
},
"secondTextPromptWeight": {
"type": "integer",
"description": "Weight of the secondary text prompt",
},
"negativePrompt": {
"type": "string",
"description": "Negative prompts to avoid in the image",
},
"imagePromptUrl": {
"type": "string",
"description": "URL of the image prompt",
},
"imageWeight": {
"type": "integer",
"description": "Weight of the image prompt",
},
"aspectRatioWidth": {
"type": "integer",
"description": "Width of the aspect ratio",
},
"aspectRatioHeight": {
"type": "integer",
"description": "Height of the aspect ratio",
},
"characterReferenceUrl": {
"type": "string",
"description": "URL of the character reference image",
},
"characterWeight": {
"type": "integer",
"description": "Weight of the character reference",
},
"styleReferenceUrl": {
"type": "string",
"description": "URL of the style reference image",
},
"styleWeight": {
"type": "integer",
"description": "Weight of the style reference",
},
"stylize": {
"type": "integer",
"description": "Stylization parameter",
},
"tile": {
"type": "boolean",
"description": "Whether to tile the image",
},
"weird": {
"type": "integer",
"description": "Weirdness factor",
},
"chaos": {
"type": "integer",
"description": "Chaos factor",
},
"textGeneration": {
"type": "string",
"description": "Text for generation",
},
"faceSwapUrl": {
"type": "string",
"description": "URL for face_swap mode",
},
"mode": {
"type": "string",
"description": "Mode ",
"enum": ["imagine", "face_swap"]
},
},
"required": ["rapid_api_key", "textPrompt", "mode"],
},
},
Поиск товаров на сайте Joomla
Пример инструкции в боте:
При поиске товаров на сайте передавай так параметры поиска:
Адрес сайта: "https://site-name.ru"
Ключ АПИ: "XXXXXXXX"
Ключевые слова для поиска в категориях:
"Покрытие", "детских", "площадок", "резиновой", "крошки"
Ключевые слова для поиска товаров:
"SBR", "Eco", "Color", "EPDM", "Premium", "каучук", "sandwich"
Результат поиска оформи в виде короткого и информативного ответа на запрос клиента.
Для работы функции создайте файл search_products.php в корне вашего сайта:
{
"name": "get_filtered_joomla_products",
"description": "Получить отфильтрованные продукты из Joomla по заданным параметрам",
"parameters": {
"type": "object",
"properties": {
"joomla_url": {
"type": "string",
"description": "URL Joomla сайта",
},
"joomla_api_key": {
"type": "string",
"description": "API ключ для доступа к Joomla",
},
"product_name": {
"type": "string",
"description": "Ключевая фраза для поиска по названию товара/услуги",
},
"category": {
"type": "string",
"description": "Ключевая фраза для поиска по категории товара/услуг",
},
"min_price": {
"type": "number",
"description": "Минимальная цена продукта",
},
"max_price": {
"type": "number",
"description": "Максимальная цена продукта",
},
"limit": {
"type": "integer",
"description": "Максимальное количество возвращаемых продуктов. По умолчанию равно 10.",
}
},
"required": ["joomla_url", "joomla_api_key", "limit"],
},
},
Определи свое предназначение в роду
Данный расчет помогает получить сведения о своих кармических задачах. Предлагаем Вашему внимание интересную гипотезу определения Вашей роли в семье. Узнать предназначение вас в этой жизни. Определяем 2 числа: личное число и число родового имени. Личное число: Согласно таблице, приведенной ниже, сложите все буквы и цифры Вашей полной даты рождения имени, отчества и фамилии, которые указаны в свидетельстве рождения. То есть для такого определения берутся Ваши: ИМЯ, ФАМИЛИЯ и ОТЧЕСТВО ДАННЫЕ ПРИ РОЖДЕНИИ!!! Складывайте полученную сумму до простого числа. Предлагаем Вам таблицу, которая укажет какому числу соответствует определенная буква. Сопоставьте каждую букву вашего имени с числом : 1-а,к,у 2-б,л,ф 3-в,м,х 4-г,н,ц 5-д,о,ч 6-е,ё,п,ш,э 7-ж,р,щ 8-з,с,ю 9-и,й,т,я,ы Например, Шиляева Даша Петровна, 18 марта 2004 Ш-6 И-9 Л-2 Я-9 Е-6 В-3 А-1 Д-5 А-1 Ш-6 А-1 П-6 Е-6 Т-9 Р-7 О-5 В-3 Н-4 А-1 Итак: сложить все цифры : фамилия + имя + отчество + число, месяц, год рождения: 6+9+2+9+6+3+1+5+1+6+1+6+6+9+7+5+3+4+1=90 Складываем 90 : 9+0=9 Складываем дату рождения: 1+8+3+2+0+0+4=18 Складываем: 1+8=9 Теперь складываем число от фамилии имени и отчества с числом даты рождения: 9+9=18 Складываем: 1+8=9 Итого: Личное число: 9
Второе число, которое необходимо определить, это: Число родового имени Рассчитайте по выше размещенной таблице число имени Рода. Для этого возьмите имя Вашего самого старшего родственника, которого вы помните. Например, самого старшего родственника, которого вы помните зовут Анна. Значит : 1+4+4+1 = 10 Складываем: 1+0 = 1 Сворачиваем полученные двузначные числа до простого числа. Теперь определяем число Рода, и смотрим, какому числу соответствует Ваша позиция в Роду Число Рода: Сложите личное число и число родового имени. Личное число: 9 Число родового имени: 1 Складываем: 9+1=10 Складываем двузначное число до простого числа: 1+0=1 Это и есть Ваше личное число Рода. Читаем ниже результат, какую позицию Вам предоставил Род: 1 — Глава рода 2 — Миротворец Рода 3 — Пахарь Рода (Труд на благо Рода) 4 — Миротворец Рода (Примирения, остановка конфликтов) 5 — Лекарь рода ( Лечит душевные и телесные раны) 6 — Наставник Рода (Оказывает внимание и поддержку юным) 7 — Хранитель Рода (Оберегает, чтит традиции, сплачивает) 8 — Страж рода (Защищает, оказывает помощь) 9 — Совесть рода ( Указывает на ошибки, исправляет промахи)
{
"name": "calculate_life_purpose",
"description": "Рассчитывает цель жизни на основе имени, даты рождения и имени старшего родственника",
"parameters": {
"type": "object",
"properties": {
"full_name": {
"type": "string",
"description": "Полное имя",
},
"birth_date": {
"type": "string",
"description": "Дата рождения",
},
"oldest_relative_name": {
"type": "string",
"description": "Имя старшего родственника",
},
},
"required": ["full_name", "birth_date", "oldest_relative_name"],
},
},
Управление Google календарем
С помощью функции бот может безопасно добавлять, просматривать, редактировать и удалять события в Google календаре. В поведении боту пропишите эти настройки:
Для твоей работы необходим ID календаря, который ты будешь передавать в функцию "google_calendar". ID календаря может быть предоставлен и в виде Email адреса. Без него ты не можешь отвечать ни на какие вопросы пользователя.
При показе запланированных событий после названия события указывай его "event_id".
Вот инструкции как пользоваться функцией:
Пропишите в промпте боту как правильно этим пользоваться:
Тип действия. + - означает добавление события. ? - означает получение всех событий календаря.. - - удалить событие в календаре. . - редактировать событие в календаре.
Также необходимо в настройках вашего календаря с помощью браузера открыть доступ к этому пользователю: "dialogai@dialogai-385904.iam.gserviceaccount.com" с правами "Внесение изменений и предоставления доступа".
ID календаря может быть как в виде e-mail адреса, так и в виде собственного обозначения, если это не основной календарь (ID можно найти в настройках интеграции календаря). Если боту предоставить ID не верный, будет выходить ошибка.
{
"name": "google_calendar",
"description": "Управление календарем Google",
"parameters": {
"type": "object",
"properties": {
"calendarId": {
"type": "string",
"description": "ID календаря",
},
"action": {
"type": "string",
"enum": ["+", "?", '-', '.'],
"description": "Тип действия. `+` - означает добавление события. `?` - означает получение всех событий календаря.. `-` - удалить событие в календаре. `.` - редактировать событие в календаре.",
},
"event_ids": {
"type": "string",
"description": "Список ID событий в календаре в формате json строки: ```[{\"event_id\": \"3lsvlor3hjlgpgmv7er7e5juov\"}]```. Передается при типах действия `-` или '.'",
},
"events": {
"type": "string",
"description": "Список событий в формате json строки: ```[{\"summary\": \"test event\", \"description\": \"some info\", \"start\": {\"dateTime\": \"2024-09-04T03:00:00+03:00\"}, \"end\": {\"dateTime\": \"2024-09-04T05:30:00+03:00\"}}]```. Передается при типах действия `+` или '.'",
},
"start_date": {
"type": "string",
"description": "Дата начала периода в формате `2024-09-04T03:00:00+03:00`. Передается при типах действия `?` или '-'",
},
"end_date": {
"type": "string",
"description": "Дата окончания периода в формате `2024-09-04T03:00:00+03:00`. Передается при типах действия `?` или '-'",
},
},
"required": ["calendarId", "action"],
},
},
Управление Google таблицей
Функция может внести изменения в таблицу Google
Нужно в промпте указать нейросети правило по которому идет запись в таблицу:
Записывай полученную информацию, ссылки и ID файлов в Google таблицу по этим правилам:
Row data to append at the end of Google Sheet formatted like this: value1;;value2;;value3
"value1" - Заголовок "value2" - Описание "value3" - URL фото
Ячейки, в которые тебе нечего записать заполни знаком -
{
"name": "ai_edit_google_sheet",
"description": "Make changes in Google Sheet Document with AI",
"parameters": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "URL of Google Sheet",
},
"request": {
"type": "string",
"description": "Here, pass 100% verbatim the task from the user without any changes",
},
"mode": {
"type": "string",
"enum" : ["+", "-", ".", "?"],
"description": "`+` - add data in Google Sheet, `-` - delete data in Google Sheet, `.` - change data in Google Sheet, `?` - read data from Google Sheet",
},
"next_question": {
"type": "string",
"description": "Next question",
},
},
"required": ["url", "request", "mode", "next_question"],
},
},
Генератор ментальных карт
Функция создает ментальную карту в формате PNG.
{
"name": "generate_mind_map",
"description": """Mind Map to PNG. For the task at hand, make a detailed mental map in Python in this form in Russian:
```python
{
"Plan for a trip": {
"Choose a country": {
"Find tickets": "In process...",
"Buy tickets": "In process...",
"Book a hotel": "In progress..."
}
}
}
```
Don't use lists, just keys and values.""",
"parameters": {
"type": "object",
"properties": {
"mind_map_json": {
"type": "string",
"description": "Mind Map as JSON string",
},
},
"required": ["mind_map_json"],
},
},
Генерация PDF
Функция позволяет попросить бота сформировать PDF файл из любой переданной ему или сгенерированной им самим информации. При этом если вы хотите оформить файл красиво с разметкой, то используйте такую инструкцию: "Если я попрошу сделать PDF, то оформи текст в соответствии с заданием в формате HTML и сформируй из этого файл PDF".
{
"name": "generate_pdf_from_html",
"description": "Генерация PDF документа на основе HTML-кода",
"parameters": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Заголовок HTML-документа"
},
"body_content": {
"type": "string",
"description": "Содержимое тела HTML-документа"
},
"styles": {
"type": "string",
"description": "CSS-стили для HTML-документа"
},
"filename": {
"type": "string",
"description": "Имя файла на выходе. Не обязательный параметр."
},
},
"required": ["title", "body_content"]
},
},