AISync
Используйте методы класса AISync для синхронной работы с нексусами на серверной стороне.
Структура ответа унифицирована для всех методов класса и содержит объект с единым набором полей. Аналогичные ответы также реализованы и для сетевых ошибок.
Примеры:
{
"sys_id": "175880623923742309",
"prompt": "[{\"content\":\"объясни квантовую механику\",\"role\":\"user\"}]", //промпт
"state": "processed", //статус
"completion": "Квантовая механика — это...", //ответ сети
"tools": "{\"tools\":[]}", //инструменты, используемые в запросе
"error_text": "", //текст ошибки
"conversation_id": "175431247526091640" //id разговора (только для чата)
}
{
"sys_id": "175880694425581291",
"prompt": "Человек придавлен деревом",
"state": "processed",
"completion": "[\n {\n \"attachment_id\": \"175880695824020030\",\n \"url\": \"https://oaidalleapiprodscus.blob.core.windows.net/private/org-rwiwWPyZuljgjQp0aAEm8dHa/nexuses-service/img-HwfDqgnuLzDj0oFIwO8b8YS8.png?st=2025-09-25T12%3A29%3A16Z&se=2025-09-25T14%3A29%3A16Z&sp=r&sv=2024-08-04&sr=b&rscd=inline&rsct=image/png&skoid=b1a0ae1f-618f-4548-84fd-8b16cacd5485&sktid=a48cca56-e6da-484e-a814-9c849652bcb3&skt=2025-09-25T05%3A49%3A57Z&ske=2025-09-26T05%3A49%3A57Z&sks=b&skv=2024-08-04&sig=gIKSnMtHcUOqDr80yXlQ9IEgpxjGeEE2rV/vEY368nU%3D\"\n }\n]",
"tools": "",
"error_text": "",
"conversation_id": ""
}
{
state: 'error', //статус "ошибка"
error_text: '"Status code: 400\" "{"id":"175887805121966914","nexus":"ain.whisperx-prod.audio_transcriptions","data":{},"error":"one of the `base64`|`url` fields are required for each file","code":400,"stream":false}"' //текст ошибки
}
constructor (nexusName, connectName)
Используйте этот конструктор класса, чтобы создать объект класса и определить вызываемый нексус и профиль настроек. По умолчанию используется дефолтный профиль настроек.
| Параметр | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| nexusName | String | Да | Нет |
| connectName | String | Да | Нет |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения. |
Пример:
const aisync = new AISync(current.nexus.name), // current.nexus.name - название нексуса
completion(prompt, messageOptions, conversation)
Используйте этот метод для отправки сообщения в ИИ сервис чата.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| prompt | Object | Да | Нет |
| messageOptions | Object | Нет | {} |
| conversation | Object | Нет | Нет |
-
Параметр prompt может обрабатывать:
- произвольную строку.
- объект или массив объектов вида:
{role: roleValue, content: contentValue, files: [{fileObject},{fileObject}]}
Вы можете указать ключ files внутри объекта prompt при работе с мультимодальными нексусами. Одномодальные нексусы игнорируют переданные файлы.
-
Параметр messageOptions позволяет переопределить дефолтные и дополнить отсутствующие опции нексуса при отправке запроса к сервису.
Возвращаемое значение:
| Тип | Описание |
|---|---|
| Object | Объект содержащий информацию об ИИ сообщении. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync('ain.qwen3.chat_completions');
const prompt = 'Test prompt';
const message = aisync.completion(prompt, {temperature: 0,6}, {uuid: '24b28927-d356-7eb0-b1ce-c8ea3c3f6c63'}); //с подключением разговора
createSpeech(prompt, messageOptions)
Используйте этот метод для отправки сообщения в ИИ-сервис работы с аудио для генерации аудиофайла на основании указанного текста.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| prompt | String | Да | Нет |
| messageOptions | Object | Нет | {} |
- Параметр prompt содержит текст, который необходимо преобразовать в аудиофайл.
- Параметр messageOptions позволяет переопределить дефолтные и дополнить отсутствующие опции нексуса при отправке запроса к сервису.
Возвращаемое значение:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync('oai.tts-1.audio_speech');
const prompt = 'Здравствуйте, меня зовут Екатерина. Я живу в небольшой деревне в сельской местности. Здесь очень красиво.';
const message = aisync.createSpeech(prompt);
formIdent(file, ident, messageOptions)
Используйте этот метод для формирования данных параметра ident, которые используются для идентификации участников разговора.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| file | Object | Да | Нет |
| messageOptions | Object | Нет | {} |
| ident | Object | Нет | null |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync('ain.identification.get_ident_file');
const message = aisync.formIdent({ attachment_id: "111111111111111111" });
diarization(file, ident, messageOptions)
Используйте метод для распознавания голосов спикеров на аудиозаписи.
Параметр ident содержит данные, которые используются для идентификации участников разго вора. Для формирования этого параметра используйте метод formIdent. По умолчанию установлено значение null, а имена спикеров имеют следующий вид: Speaker 0, Speaker 1 и так далее.
Также вы можете настроить вид объекта ident следующим образом:
{"Ivan Petrov": [-0.02906041406095028, 0.08401278406381607, -0.07044941186904907, 0.14326906204223633, 0.15503352880477905]}
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| file | Object | Да | Нет |
| ident | Object | Нет | null |
| messageOptions | Object | Нет | {} |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync('ain.identification.ident_diarize');
const message = aisync.diarization({ attachment_id: "111111111111111111" });
generate(prompt, messageOptions)
Используйте этот метод для отправки сообщения в ИИ-сервис для создания медиафайла на основании текста.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| prompt | String | Да | Нет |
| messageOptions | Object | Нет | {} |
- С помощью параметра messageOptions вы можете переопределить дефолтные и дополнить отсутствующие опции нексуса при отправке запроса к сервису.
Возвращаемое значение:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync('oai.dall-e-2.images_generations');
const prompt = 'Пингвин';
const message = aisync.generate(prompt);
recognitionVision(file, messageOptions)
Используйте метод для отправки сообщения в ИИ-сервис для работы с документами для транскрибирования исходного файла в текст.
Параметры:
| Параметр | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| file | Array или Object | Да | Нет |
| messageOptions | Object | Нет | {} |
- Параметр file является либо объектом либо массивом объектов, которые содержат ключи, указанные ниже. В случае наличия base64 и url одновременно, приоритет отдается base64.
Ключи, которые могут быть обработаны:
| Поле | Тип | Обязательно | Значение |
|---|---|---|---|
| file_name | String | Да | Имя файла и расширение |
| mime_type | String | Да | mime_type файла |
| base64 | String | Нет | Строка base64 |
| url | String | Нет | URL файла |
- Параметр messageOptions позволяет переопреде лить дефолтные и дополнить отсутствующие опции нексуса при отправке запроса к сервису.
Возвращаемое значение:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync('ain.ocr.doc-to-text');
const promptfile = {
"file_name": "Безымянный2.png",
"form_name": "file",
"base64": "khtjgiotko3p34734634ojhl6ijh34k634l6h3434iklh6b34jk",
"mime_type": ""
}
const message = aisync.recognitionVision(promptfile);
recognitionVoice(file, messageOptions)
Используйте метод для отправки сообщения в ИИ-сервис для работы с документами для транскрибирования исходного файла в текст.
Параметры:
| Параметр | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| file | Array или Object | Да | Нет |
| messageOptions | Object | Нет | {} |
- Параметр file является либо объектом либо массивом объектов, которые содержат ключи, указанные ниже. В случае наличия base64 и url одновременно, приоритет отдается base64.
Ключи, которые могут быть обработаны:
| Поле | Тип | Обязательно | Значение |
|---|---|---|---|
| file_name | String | Да | Имя файла и расширение |
| mime_type | String | Да | mime_type файла |
| base64 | String | Нет | Строка base64 |
| url | String | Нет | URL файла |
- Параметр messageOptions позволяет переопределить дефолтные и дополнить отсутствующие опции нексуса при отправке запроса к сервису.
Возвращаемое значение:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync('ain.whisperx-prod.audio_transcriptions');
const promptfile = {
"file_name": "175344275325162797.mpeg",
"form_name": "file",
"base64": "khtjgiotko3p34734634ojhl6ijh34k634l6h3434iklh6b34jk",
"mime_type": ""
}
const message = aisync.recognitionVoice(promptfile);
processDocument(file, messageOptions)
Используйте этот метод для отправки сообщения в ИИ сервис для транскрибирования документа и получения результата в формате JSON.
Параметры:
| Параметр | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| file | Array или Object | Да | Нет |
| messageOptions | Object | Нет | {} |
Ключи, которые могут быть обработаны:
| Поле | Тип | Обязательно | Значение |
|---|---|---|---|
| file_name | String | Да | Имя файла и расширение |
| mime_type | String | Да | mime_type файла |
| base64 | String | Нет | строка base64 |
| url | String | Нет | URL файла |
- Параметр messageOptions позволяет переопределить дефолтные и дополнить отсутствующие опции нексуса при отправке запроса к сервису.
Возвращаемое значение:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync('ain.ocr.process_document');
const promptfile = {
"file_name": "Закрывающие PAYM0006643 (1).jpg",
"form_name": "file",
"url": ""
}
const message = aisync.processDocument(promptfile);
setTimeout(timeout)
Используйте метод для того, чтобы установить максимальное время ожидания ответа от сервиса в секундах. Если установленное время будет превышено, сообщение будет переведено в статус Ошибка, а также будет инициировано событие reject, если оно было задано в eventRejectOptions.
| Параметр | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| timeout | Integer | Да | Нет |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync('ain.qwen3.chat_completions');
const prompt = 'Test prompt';
aisync.setTimeout(3600);
const message = aisync.completion(prompt, {temperature: 0,6}, {uuid: '24b28927-d356-7eb0-b1ce-c8ea3c3f6c63'});
setUser(userId)
Используйте метод, чтобы инициировать работу ИИ от имени заданного в параметре пользователя. В результате имя пользователя будет добавлено в тело сформированного сообщения.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| userId | String | Да | ID пользователя, от имени которого будет запущен ИИ. |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync('ain.qwen3.chat_completions');
const prompt = 'Test prompt';
aisync.setUser(AI_ASSISTANT_ID);
const message = aisync.completion(prompt, {temperature: 0,6}, {uuid: '24b28927-d356-7eb0-b1ce-c8ea3c3f6c63'});
setTag(tags)
Используй те этот метод, чтобы добавить в тело сообщения тег для определения в ходе анализа, в рамках какого механизма это сообщение было отправлено.
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
| tags | String | Да | Значение тега. |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| undefined | Метод не возвращает значения. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync('ain.qwen3.chat_completions');
const prompt = 'Test prompt';
aisync.setTag('UserQueryAnalysis');
const message = aisync.completion(prompt, {temperature: 0,6}, {uuid: '24b28927-d356-7eb0-b1ce-c8ea3c3f6c63'});
translate(text, sourceLang, targetLang, options, eventConfig, eventRejectConfig)
Используйте этот метод, чтобы получить перевод исходного сообщения на целевой язык. Возвращаемое значение сохраняется в таблице Сообщения ИИ (ain_ai_message).
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| text | String, Array of Strings | Да | Нет |
| sourceLang | String | Нет | Нет |
| targetLang | String | Да | Нет |
| options | Object | Нет | {} |
| eventConfig | Object | Нет | {} |
| eventRejectConfig | Object | Нет | {} |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| Array | Возвращает переведенное сообщение и название исходного языка. |
Пример:
ss.importIncludeScript('AISync');
const aisync = new AISync();
const message = aisync.translate('We live on the second floor, so usually we do not use the elevator.', 'ru');