AIChat
Этот класс серверного API содержит методы для отправки сообщений, через нексусы типа "чат" в AIService.
AIChat(nexus, connectName)
Используйте этот метод, чтобы инициализировать класс AIChat для указанного нексуса и коннекта.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию | 
|---|---|---|---|
| nexus | String | Нет | Название нексуса или название нексуса, установленного по умолчанию в Настройки профиля. | 
| connectName | String | Нет | Наименование профиля Настройки профиля или наименование профиля, установленного по умолчанию. | 
Возвращаемое значение:
| Тип | Описание | 
|---|---|
| Void | Метод не возвращает значение. | 
Пример:
const chat = new AIChat ('oai.gpt-4o-mini.chat_completion', 'TestConnect');
completion(prompt, messageOptions, eventOptions, eventRejectOptions)
Используйте этот метод для отправки сообщения в AI сервис чата.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию | 
|---|---|---|---|
| prompt | String, Array или Object | Да | Нет | 
| messageOptions | Object | Нет | {} | 
| eventOptions | Object | Нет | {} | 
| eventRejectOptions | Object | Нет | {} | 
- 
Параметр prompt может обрабатывать:
- произвольную строку.
 - объект или массив объектов вида:
{role: roleValue, content: contentValue, files: [{fileObject},{fileObject}]} 
Используйте параметр prompt при работе с мультимодальными нексусами. Одномодальные нексусы игнорируют файлы, переданные этим параметром.
 - 
Параметр messageOptions позволяет переопределить дефолтные и дополнить отсутствующие опции нексуса при отправке запроса к сервису.
 - 
Параметр eventOptions позволяет создать событие при условии положительного ответа сервиса.
- Ключ param_1 зарезервирован и всегда содержит sys_id созданного ain_ai_message.
 - Вы можете добавить местозаполнитель для подстановки атрибутов соответствующего ain_ai_message.
Пример: param_2: 
"${message.completion}" 
 
Ключи, которые могут быть обработаны:
| Поле | Тип | Обязательное | Значение по умолчанию | 
|---|---|---|---|
| event_name | String | Да | Нет | 
| table_name | String | Нет | ain_ai_message | 
| record_sys_id | String | Нет | sys_id созданного ain_ai_message | 
| process_started_at | String | Нет | Нет | 
| param_2 | String | Нет | Нет | 
| param_3 | String | Нет | Нет | 
| param_4 | String | Нет | Нет | 
| param_5 | String | Нет | Нет | 
- Определите параметр eventRejectOptions, чтобы в случае отрицательного ответа сервиса было инициировано событие с указанными параметрами.
- Ключ param_1 зарезервирован и всегда содержит sys_id созданного ain_ai_message.
 - Вы можете добавлять местозаполнители для подстановки атрибутов соответствующего ain_ai_message.
Пример: param_2: 
"${message.completion}" 
 
Условия для инициирования события:
- сервис сообщил об ошибке.
 - не удалось обработать ответ сервиса.
 - не удалось обработать eventOptions.
 - при превышении времени ожидания ответа от сервиса, если оно было задано с помощью метода (setTimeout).
 
Ключи, которые могут быть обработаны:
| Поле | Тип | Обязательное | Значение по умолчанию | 
|---|---|---|---|
| event_name | String | Да | Нет | 
| table_name | String | Нет | ain_ai_message | 
| record_sys_id | String | Нет | sys_id созданного ain_ai_message | 
| process_started_at | String | Нет | Нет | 
| param_2 | String | Нет | Нет | 
| param_3 | String | Нет | Нет | 
| param_4 | String | Нет | Нет | 
| param_5 | String | Нет | Нет | 
Возвращаемое значение:
| Тип | Описание | 
|---|---|
| String | Метод возвращает sys_id созданного AI Message. Если AI Message создать не удалось, метод возвращает 0. | 
Пример:
ss.importIncludeScript('AIChat');
const chat= new AIChat();
const messageId = chat.completion(
    'Сколько звезд в небе?',
    { temperature: 0.6 },
    {
        event_name: "my_event",
        table_name: "task",
        record_sys_id: "170014704227406837",
        param_2: "${message.completion}"
    }
);
 
ss.info(messageId);
getErrors()
Используйте этот метод, чтобы получать информацию об ошибках, если при отправке сообщения произошел сбой.
Возвращаемое значение:
| Тип | Описание | 
|---|---|
| Array of Strings | Метод возвращает список ошибок. | 
Пример:
ss.importIncludeScript('AIChat');
const chat= new AIChat('unknown_nexus');
const messageId = chat.completion(
    'Сколько звезд в небе?',
    { temperature: 0.6 }
);
 
ss.info(chat.getErrors());
setTimeout(duration)
Используйте метод, чтобы установить максимальное время ожидания ответа от сервиса в секундах. Если установленное время будет превышено, сообщение будет переведено в статус Ошибка, а также будет инициировано reject событие, если оно было задано в eventRejectOptions.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию | 
|---|---|---|---|
| duration | Integer | Да | Нет | 
Возвращаемое значение:
| Тип | Описание | 
|---|---|
| Void | Метод не возвращает значения. | 
Пример:
ss.importIncludeScript('AIChat');
const chat= new AIChat();
chat.setTimeout(3600);
const messageId = chat.completion(
    'Сколько звезд в небе?',
    { temperature: 0.6 }
);
setConversation(uuid, quantity)
Используйте этот метод, чтобы создать новую беседу для экземпляра чата или указать существующую. Также метод позволяет определить количество последних сообщений в беседе, которыми будет наполнен контекст.
В случае указания существующей беседы, при использовании метода completion() бу дут переданы также предыдущие сообщения в количестве, указанном в параметре quantity, из указанной беседы.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию | 
|---|---|---|---|
| uuid | String | Нет | Нет | 
| quantity | Integer | Нет | 10 | 
Возвращаемое значение:
| Тип | Описание | 
|---|---|
| AIConversation | Метод возвращает экземпляр AIConversation. | 
Пример:
const chat= new AIChat();
chat.setConversation('5b423b61-99e7-4e4f-9466-b55b266e2420', 5);
const messageId = chat.completion(
    'Сколько звезд в небе?',
    { temperature: 0.6 }
);
 
ss.info(chat.getErrors());
const chat = new AIChat();
const conversation = chat.setConversation(); // т.к. не передан uuid, будет создан новый разговор
ss.info(conversation.uuid); // uuid разговора
ss.info(conversation.id); // sys_id разговора в таблице ain_conversation
const chat = new AIChat();
const conversation = chat.setConversation('5b423b61-99e7-4e4f-9466-b55b266e2420');
ss.info(conversation.uuid); // 5b423b61-99e7-4e4f-9466-b55b266e2420
ss.info(conversation.id); // sys_id разговора в таблице ain_conversation
setTag(tagName)
Используйте этот метод, чтобы добавить в тело сообщения тег для определения в ходе анализа, в рамках какого механизма это сообщение было отправлено.
Параметры:
| Название | Тип | Обязательный | Описание | 
|---|---|---|---|
| tagName | String | Да | Значение тега, который будет присвоен механизму. | 
Возвращаемое значение:
| Тип | Описание | 
|---|---|
| undefined | Метод не возвращает значения. | 
Пример:
  const AI_ASSISTANT_ID = '170510242421430374';
  
ss.importIncludeScript('AIChat');
const chat= new AIChat();
chat.setUser(AI_ASSISTANT_ID); 
chat.setTag('UserQueryAnalysis');
const messageId = chat.completion(
    'Сколько звезд в небе?',
    { temperature: 0.6 },
    {
        event_name: "my_event",
        table_name: "task",
        record_sys_id: "170014704227406837",
    }
);
 
ss.info(messageId);
setUser(userID)
Используйте метод, чтобы иници ировать работу ИИ от имени заданного в параметре пользователя. В результате имя пользователя будет добавлено в тело сформированного сообщения.
Параметры:
| Название | Тип | Обязательный | Описание | 
|---|---|---|---|
| userID | String | Да | ID пользователя, от имени которого будет запущен ИИ. | 
Возвращаемое значение:
| Тип | Описание | 
|---|---|
| undefined | Метод не возвращает значения. | 
Пример:
  const AI_ASSISTANT_ID = '170510242421430374';
  
ss.importIncludeScript('AIChat');
const chat= new AIChat();
chat.setUser(AI_ASSISTANT_ID); 
chat.setTag('UserQueryAnalysis');
const messageId = chat.completion(
    'Сколько звезд в небе?',
    { temperature: 0.6 },
    {
        event_name: "my_event",
        table_name: "task",
        record_sys_id: "170014704227406837",
    }
);
 
ss.info(messageId);