Skip to main content

AIChat

Этот класс серверного API содержит методы для отправки сообщений, через нексусы типа "чат" в AIService.

AIChat(nexus, connectName)


Используйте этот метод, чтобы инициализировать класс AIChat для указанного нексуса и коннекта.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
nexusStringНетПринимает значение, указанное в свойстве ain.api.chat.default_nexus.
connectNameStringНетПринимает значение, указанное в свойстве ain.ai_connect.default.

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значение.

completion(prompt, messageOptions, eventOptions, eventRejectOptions)


Используйте этот метод для отправки сообщения в AI сервис чата.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
promptString, Array или ObjectДаНет
messageOptionsObjectНет
eventOptionsObjectНет
eventRejectOptionsObjectНет
  • Параметр prompt может обрабатывать:

    • произвольную строку.
    • объект формата - {content: "example", role: "user"}
    • массив объектов формата, указанных выше.
  • Параметр messageOptions позволяет переопределить дефолтные и дополнить отсутствующие опции нексуса при отправке запроса к сервису.

  • Параметр eventOptions позволяет создать событие при условии положительного ответа сервиса.

    • Ключ param_1 зарезервирован и всегда содержит sys_id созданного ain_ai_message.
    • Вы можете добавить местозаполнитель для подстановки атрибутов соответствующего ain_ai_message. Пример: param_1: "${message.complition}"

Ключи, которые могут быть обработаны:

ПолеТипОбязательноеЗначение
event_nameStringДаНет
table_nameStringНетain_ai_message
record_sys_idStringНетsys_id созданного ain_ai_message
process_started_atStringНет
param_2StringНет
param_3StringНет
param_4StringНет
param_5StringНет
  • Определите параметр eventRejectOptions, чтобы в случае отрицательного ответа сервиса было инициировано событие с указанными параметрами.
    • Ключ param_1 зарезервирован и всегда содержит sys_id созданного ain_ai_message.
    • Вы можете добавлять местозаполнители для подстановки атрибутов соответствующего ain_ai_message. Пример: param_1: "${message.complition}"

Условия для инициирования события:

  • сервис сообщил об ошибке.
  • не удалось обработать ответ сервиса.
  • не удалось обработать eventOptions.
  • при превышении времени ожидания ответа от сервиса, если оно было задано с помощью метода (setTimeout).

Ключи, которые могут быть обработаны:

ПолеТипОбязательноеЗначение
event_nameStringДаНет
table_nameStringНетain_ai_message
record_sys_idStringНетsys_id созданного ain_ai_message
process_started_atStringНет
param_2StringНет
param_3StringНет
param_4StringНет
param_5StringНет

Возвращаемое значение:

ТипОписание
StringМетод возвращает sys_id созданного AI Message. Если AI Message создать не удалось, метод возвращает 0.

Пример:

completion()
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.complition}"
}
);

ss.info(messageId);

getErrors()


Используйте этот метод, чтобы получать информацию об ошибках, если при отправке сообщения произошел сбой.

Возвращаемое значение:

ТипОписание
Array of StringsМетод возвращает список ошибок.

Пример:

getErrors()
ss.importIncludeScript('AIChat');
const chat= new AIChat('unknown_nexus');
const messageId = chat.completion(
'Сколько звезд в небе?',
{ temperature: 0.6 }
);

ss.info(chat.getErrors());

setTimeout(duration)


Используйте метод, чтобы установить максимальное время ожидания ответа от сервиса в секундах. Если установленное время будет превышено, сообщение будет переведено в статус Ошибка, а также будет инициировано reject событие, если оно было задано в eventRejectOptions.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
durationIntegerДаНет

Возвращаемое значение:

ТипОписание
VoidМетод не возвращает значения.

Пример:

setTimeout()
ss.importIncludeScript('AIChat');
const chat= new AIChat();
chat.setTimeout(3600);
const messageId = chat.completion(
'Сколько звезд в небе?',
{ temperature: 0.6 }
);

setConversation(uuid, quantity)


Используйте этот метод, чтобы создать новую беседу для экземпляра чата или указать существующую. Также метод позволяет определить количество последних сообщений в беседе, которыми будет наполнен контекст.

caution

В случае указания существующей беседы, при использовании метода completion() будут переданы также предыдущие сообщения в количестве, указанном в параметре quantity, из указанной беседы.

Параметры:

НазваниеТипОбязательныйЗначение по умолчанию
uuidStringНетНет
quantityIntegerНет10

Возвращаемое значение:

ТипОписание
AIConversationМетод возвращает экземпляр AIConversation.

Пример:

setConversation()
const chat= new AIChat();
chat.setConversation('5b423b61-99e7-4e4f-9466-b55b266e2420', 5);
const messageId = chat.completion(
'Сколько звезд в небе?',
{ temperature: 0.6 }
);

ss.info(chat.getErrors());