AIChat
Этот класс серверного API содержит ме тоды для отправки сообщений, через нексусы типа "чат" в AIService.
AIChat(nexus, connectName)
Используйте этот метод, чтобы инициализировать класс AIChat для указанного нексуса и коннекта.
Параметры:
| Название | Тип | Обязательный | Значение по умолчанию |
|---|---|---|---|
| nexus | String | Нет | Название нексуса или название нексуса, установленного по умолчанию в AI Settings Profile. |
| connectName | String | Нет | Наименование (Name) профиля AI Settings Profile или наименование (Name) профиля AI Settings Profile, установленного по умолчанию. |
Возвращаемое значение:
| Тип | Описание |
|---|---|
| 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_1:
"${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_1:
"${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());
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);