AI в рабочих процессах
AI-агенты в редакторе рабочих процессов
Обработку данных в виджетах можно объединить, настроив рабочий процесс так, чтобы операции выполнялись последовательно разными нексусами, например, загруженную аудио- или видеозапись можно сначала транскрибировать, затем перевести на нужный язык и заполнить полученными данными необходимые поля при помощи Smart Filling.
Результаты работы каждого блока мо жно записать в выбранное поле на форме или передать его в следующий блок при помощи скрипта.
Вы также можете добавить вложенный объект variables в объект AI, который будет сохранен в формате JSON в поле Variables формы AI Task (ain_ai_task).
Для подготовки организации рабочего процесса с участием AI, необходимо создать одного или нескольких виртуальных сотрудников — AI Employee. Для этого выполните следующее:
- Перейдите в навигаторе AI Process Management → AI Employee.
- Нажмите Создать и в открывшейся форме заполните:
- поле name, например, "Основной помощник".
- поле prompt, добавив описание контекста, например, "1. Предоставляй подробную информацию. 2. Говори прямо. 3. Никогда не упоминай, что ты помощник или искусственный интеллект."
Для более точного результата мы рекомендуем записывать контекст роли на английском языке.
- Нажмите Сохранить.
Поля действий в рабочем процессе
Обязательность полей не ограничивается настройками каждого действия. Заполняйте все поля, необходимые для корректного выполнения вашего рабочего процесса.
Поле | Обязательно | Описание | Действия |
---|---|---|---|
Наименование | Нет | Укажите наименование действия. Для удобства работы создавайте информативные наименования. | AI script, Generate content, Review, Enhancement, Question, Statement, Transcribe, OCR, Chat, Generate Image, Create Speech |
Script | Нет | Добавьте скрипт с объектом AI. | AI script |
AI Employee | Нет | Ук ажите запись сотрудника, созданную для ИИ. | Generate content, Review, Enhancement, Question, Statement |
Nexus | Да | Укажите нексус. Вы можете нексус в соответствии с поставленной задачей и выполняемым действием. Доступные типы нексусов по методам и действиям:
| Generate content, Review, Enhancement, Question, Statement, Transcribe, OCR, Chat, Generate Image, Create Speech |
Temperature | Нет | Укажите температуру – степень творчества ИИ. Доступны значения от 0 до 2. По умолчанию установлено значение 0.6. | Generate content, Review, Enhancement, Question, Statement, Chat |
Prompt | Да/Нет | Добавьте контекст для создания текста. | Generate content, Review, Enhancement, Question, Statement. Поле обязательно для: Generate Image и Create Speech. |
Composite Prompt | Нет | Наглядное отображение архитектуры промпта, который будет отправлен. | Generate content, Review, Enhancement, Question, Statement |
Source column | Да/Нет | Ук ажите колонку типа Text или String, которая содержит входные данные для действия. Поле необязательно, когда установлен флажок Advanced source. | Transcribe, OCR, Chat, Create Speech |
Advanced source | Да/Нет | Установите флажок, чтобы задать входные данные через скрипт. | Transcribe, OCR, Create Speech |
Target column | Да/Нет | Укажите колонку типа Text или String, в которую будут записаны выходные данные. Поле необязательно, когда установлен флажок Advanced. | Generate content, Review, Enhancement, Question, Statement, Transcribe, Chat, Generate Image, Create Speech, OCR. |
Advanced | Нет | Установите флажок, чтобы сформировать выходные данные через скрипт. | Generate content, Review, Enhancement, Question, Statement, Transcribe, OCR, Chat, Generate Image, Create Speech |
Source script | Да/Нет | Добавьте скрипт, чтобы сформировать входные данные. Поле обязательно, когда установлен флажок Advanced source. | Transcribe, OCR, Chat, Generate Image, Create Speech |
Target script | Нет | Добавьте скрипт, чтобы обработать и сформировать выходные данные. Поле обязательно, когда установлен флажок Advanced. | Generate content, Review, Enhancement, Question, Statement, Transcribe, OCR, Chat, Generate Image, Create Speech |
Max iteration | Нет | Укажите максимальное количество итераций оценки результата. | Review |
Exit prompt | Нет | Укажите контекст для выхода из этого действия. Например: Есть ли комментарии? Нужно ли что-то уточнить?. В этом случае, если комментарии есть, то текст отправляется на доработку с учетом комментариев, если нет, рабочий процесс переходит к следующему блоку. | Review |
Прикрепить результат к записи | Нет | Установите флажок, чтобы результат работы действия сохранялся во вложении к записи. | OCR, Chat, Create Speech |
Прикрепить изображения к текущей записи | Нет | Установите флажок, чтобы сохранить созданные изображения во вложениях текущей записи. | Generate Image |
Количество изображений | Нет | Укажите количество изображений, которые необходимо создать. | Generate Image |
Размер изображения | Нет | Выберите размер изображений. Доступные варианты:
| Generate Image |
Custom error handler | Нет | Установите флажок, чтобы настроить обработчик ошибки действия вручную в одноименном поле вкладки Error handling. Если флажок не установлен, при остановке действия его статус меняется на error, а рабочий процесс прерывается. Сообщение об ошибке отображается в соответствующей записи AI Step, а также в таблице Основной журнал (sys_log). | Generate content |
Custom error handler | Да | Настройте поведение рабочего процесса в случае ошибки в действии. Для этого передайте в скрипте следующие параметры: Вы можете:
| Generate content |
run_as_user | Нет | Укажите ID пользователя, от лица которого будет выполне но действие. Значение этого поля можно задать только при помощи скрипта в полях Script, Source script и Target script. Смотрите Примеры скриптов. | Все |
AI-действия в редакторе рабочих процессов
В таблице AI Tasks (ain_ai_task) содержатся записи задач, соответствующие каждому запущенному рабочему процессу. В связанном списке AI Task Steps(ain_ai_task_step) отображаются действия, выполненные ИИ.
AI script
Используйте это действие для добавления объекта AI в скрипт.
Ниже представлен пример AI Script для создания артефакта с релевантными инцидентами из векторной базы данных.
Пример:
const collection = ss.getProperty('ain.relevant_incidents.collection_name');
ss.importIncludeScript('AIVector');
const vector = new AIVector(collection);
const relevantIncs = vector.search(Тема: ${current.subject} Описание: ${current.description}, 15);
ai.artefact = JSON.stringify(relevantIncs.map(el => {
return JSON.stringify({
content: el.document,
record_id: el.metadata.record_id
})
}))
Generate Content
Используйте это действие, чтобы создать ответ в текстовом формате по запросу пользователя в виджете чата в соответствии с поставленной ИИ ролью.
Review
Используйте это действие, чтобы проверить, на сколько артефакт соответствует запросу, указанному в поле exit prompt, при помощи ИИ.
Если комментарии по доработке есть, улучшение текста происходит в действии Enhancement. В качестве проверяющего выступает другой AI employee. По умолчанию проверка проходит три цикла, после чего рабочий процесс переходит к следующему действия.
Enhancement
Используйте это действие, чтобы при помощи ИИ улучшить ответ из Generate Content после комментариев, полученных на этапе Review. Исправленный по комментариям текст повторно отправляется на проверку. Как только у выбранной нейросети из действия Review не останется комментариев, проверка считается пройденной. В этом случае пользователь получает результат, а рабочий процесс переходит к следующему действию.
Question
Используйте это действие для работы с вопросами на форме таблицы AI Task (ain_task). Ответ записывается в поле Question.
Statement
Используйте это действие, чтобы использовать функциональность Smart filling в рабочем процессе.
Transcribe
Используйте это действие для транскрибирования аудио-файлов. Входными данными для действия могут с тать значения полей текущей записи типа Text или String, а также скрипт, который сформирует и вернет объект с нужными значениями полей. Распознанный текст можно записать в поле текущей записи или обработать скриптом и передать в следующее действие рабочего процесса.
Пример выходных данных, когда входной файл был получен из Source column:
"1234567890" (attachment id)
{ "attachment_id": "1234567890" }
{ "file_name": "voice.mpeg", mime_type: "audio/mpeg", base64: "" }
{ "file_name": "voice.mpeg", mime_type: "audio/mpeg", url: "" }
Примеры входных данных для следующего действия, сформированных скриптом:
{ attachment_id: "1234567890" }
{ file_name: "", mime_type: "", base64: "" }
{ file_name: "", mime_type: "", url: "" }
OCR
Используйте это действие для распознавания текста. Полученный текст можно обработать скриптом или использовать для заполнения полей типа String или Text.
Поле Target Column обязательно для заполнения.
Поддерживаемые форматы документов: PDF, DOC, DOCX, XLSX, JPG, PNG.
Варианты входных данных, если они берутся из Source column:
"1234567890" (attachment id)
{ "attachment_id": "1234567890" }
{ "file_name": "document.png", "mime_type": "image/png", "base64": "" }
{ "file_name": "document.png", "mime_type": "image/png", "url": "" }
Варианты входных данных, если они формируются скриптом (что должен вернуть скрипт):
{ "attachment_id": "1234567890" }
{ "file_name": "document.png", "mime_type": "image/png", "base64": "" }
{ "file_name": "document.png", "mime_type": "image/png", "url": "" }
Chat
Используйте это действие для добавления чата с ИИ на форму. Для этого выберите нексус и поля для входных и выходных данных. Также выходные данные можно обработать скриптом.
Варианты входных данных для скрипта:
- Произвольная строка
- Объект формата:
{ "content": "Hello", "role": "user" }
- Массив объектов:
[{ "content": "Hello", "role": "user" }]
Generate Image
Используйте это действие, чтобы создавать необходимое количество изображений при помощи ИИ на основе введенной в поле Prompt информации. Созданные изображения можно сохранить во вложении текущей записи.
Поле Prompt обязательно для заполнения.
Create Speech
Используйте это действие, чтобы создать аудиофайл на основе текста. Созданный файл можно сохранить во вложении записи или передать на обработку в следующий блок. Выходные данные действия имеют следующий вид: [{ "attachment_id": "000000000" }]
.
Поле Prompt обязательно для заполнения.
Примеры скриптов
По умолчанию к возвращаемому значению действия добавляется атрибут tag
, который содержит название рабочего процесса, в рамках которого это действие выполнялось.
Запуск выполнени я блока от имени, указанного в атрибуте run_as_user
const prompt = {
content: 'Привет',
role: 'user'
}
ai.run_as_user = 'Рома'
return prompt;
// Результат:
{
"id": "175135869124773808",
"nexus": "ain.phi4.chat_completions",
"data": {
"messages": [
{
"content": "Привет",
"role": "user"
}
]
},
"username": "Рома",
"tags": "Workflow:Intro"
}
Выявление ошибки в процессе выполнения действия до того, как она приведет к сбою
((
/* SimpleRecord */
current,
/* SimpleRecord */
activity,
/* Object */
ai,
/* String */
errorMessage
) => {
ss.debug(errorMessage);
activity.state='error';
})(current, activity, ai, errorMessage)