AIChat
Этот класс серверного API содержит методы для отправки сообщений, через нексусы типа "чат" в AIService.
AIChat(nexus, connectName)
Используйте этот метод, чтобы инициализировать класс AIChat для указанного нексуса и коннекта.
Параметры:
Название | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|
nexus | String | Нет | Принимает значение, указанное в свойстве ain.api.chat.default_nexus. |
connectName | String | Нет | Принимает значение, указанное в свойстве ain.ai_connect.default. |
Возвращаемое значение:
Тип | Описание |
---|---|
Void | Метод не возвращает значение. |
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());