ИП Горелов Максим Николаевич 8 (915) 093-74-75
Пользователи могут создавать собственные функции, если владеют языком программирования Python. Для тех, кто не владеет Python, есть решение с использованием бота. Сперва необходимо с помощью функции №65 Внешний API проверить работоспособность идеи. У каждого сервиса, который предоставляет открытый API есть документация, необходимо использовать её для того, чтобы создать рабочую связь с сервисом.
Используйте бота Разработчика интеграций. Боту достаточно предоставить примеры запросов, которые вам придется найти на странице документации подключаемого сервиса или получить их у техподдержки. Затем полученный готовый запрос бот может отправить по API и протестировать его работу.
Как только вы убедились, что связь с сервисом по API работает и необходимый функционал выполняется, то переходите к написанию функции. Для этого в личном кабинете ProTalk найдите раздел Мои функции и нажмите синий плюсик "Добавить функцию". Перед вами откроется форма заполнения данных.
Чтобы правильно создать определение и код функции используйте другого бота: Мастера по созданию функций. Он поможет вам написать и правильно оформить функцию для отправки на модерацию. Ему достаточно указать какой из известных сервисов вы хотите интегрировать с ProTalk, написать какие параметры хотите использовать и он напишет описание, определение и код функции. Останется только отправить его нам в разделе личного кабинета "Добавить функцию".
Обратите внимание на то, что для быстрой модерации вашей функции необходимо приложить ссылку на файл Google Colab. Файл создавайте по такому шаблону:
Пример готовой функции в Google Colab:
Данная документация предназначена для разработчиков, которые создают функции для интеграции с ИИ платформой. Функции позволяют расширить возможности платформы, добавляя новые возможности для обработки запросов и выполнения задач.
Функция состоит из двух основных частей:
Определение функции: JSON-объект, который описывает параметры функции и её назначение.
Код функции: Реализация логики функции на языке Python.
Определение функции представляет собой JSON-объект, который содержит следующие поля:
name: Имя функции. Должно быть уникальным и описывать назначение функции.
description: Краткое описание функции, которое объясняет, что она делает.
parameters: Объект, описывающий параметры функции. Включает в себя:
type: Тип объекта (обычно object
).
properties: Свойства параметров функции. Каждое свойство описывает один параметр и включает:
type: Тип параметра (например, integer
, string
).
description: Описание параметра.
enum (опционально): Список допустимых значений для параметра.
required: Список обязательных параметров.
Пример определения функции:
{
"name": "neon_calc",
"description": "Калькулятор стоимости изготовления вывески",
"parameters": {
"type": "object",
"properties": {
"height": {
"type": "integer",
"description": "Высота вывески в сантиметрах"
},
"letter_count": {
"type": "integer",
"description": "Количество букв в вывеске"
},
"wire_length": {
"type": "integer",
"description": "Длина провода в метрах для подведения питания к вывеске"
},
"has_frame": {
"type": "string",
"enum": ["Да", "Нет"],
"description": "Нужен ли каркас в вывеске"
},
"has_backplate": {
"type": "string",
"enum": ["Да", "Нет"],
"description": "Нужна ли подложка в вывеске"
}
},
"required": ["height", "letter_count"]
}
}
Код функции реализует логику, описанную в определении функции. Он должен быть написан на языке Python и соответствовать следующим требованиям:
Импорты: Все необходимые импорты должны быть выполнены внутри функции, после её объявления.
Параметры: Функция принимает один аргумент arguments
, который содержит все переданные параметры.
Логика: Внутри функции должна быть реализована логика обработки параметров и выполнения необходимых вычислений.
Возвращаемое значение: Функция должна возвращать результат вычислений.
Пример кода функции:
def neon_calc(arguments):
import math
height = arguments['height']
letter_count = arguments['letter_count']
wire_length = 0
has_frame = False
has_backplate = False
if 'wire_length' in arguments:
wire_length = arguments['wire_length']
if 'has_frame' in arguments:
has_frame = True if arguments['has_frame'] == 'Да' else False
if 'has_backplate' in arguments:
has_backplate = True if arguments['has_backplate'] == 'Да' else False
base_cost_per_unit = 90 # Рубли за единицу
frame_cost_percentage = 5 # Процент стоимости каркаса от общей стоимости вывески
backplate_cost_percentage = 30 # Процент стоимости подложки от общей стоимости вывески
installation_cost_percentage = 25 # Процент стоимости монтажа от общей стоимости вывески
wire_cost_per_meter = 400 # Стоимость провода за метр
rent_cost_per_meter = 850 # Ежемесячная стоимость аренды за метр вывески
sign_cost = base_cost_per_unit * height * letter_count
if has_frame:
frame_cost = sign_cost * frame_cost_percentage / 100
sign_cost += frame_cost
if has_backplate:
backplate_cost = sign_cost * backplate_cost_percentage / 100
sign_cost += backplate_cost
if wire_length > 0:
wire_cost = wire_length * wire_cost_per_meter
sign_cost += wire_cost
installation_cost = sign_cost * installation_cost_percentage / 100
sign_cost += installation_cost
print(f"Общая стоимость вывески: {sign_cost} рублей")
return sign_cost
Именование функций: Имя функции должно быть уникальным и отражать её назначение.
Описание параметров: Все параметры должны быть описаны в определении функции, чтобы пользователи могли понять, какие данные необходимо передать.
Обработка ошибок: Убедитесь, что функция корректно обрабатывает отсутствующие или некорректные параметры.
Тестирование: Перед интеграцией функции в платформу, убедитесь, что она протестирована и работает корректно.
Создание функций для ИИ платформы требует внимательного подхода к определению параметров и реализации логики. Следуя рекомендациям, изложенным в данной документации, вы сможете создавать эффективные и удобные функции для интеграции с платформой.
© ProTalk 2023-2025 ИП Горелов Максим Николаевич ИНН 500104951533 ОГРН 309500106900065
Новая, 8, 9 Реутов, Московская область 143964 Россия