AiChat
Отоб ражает чат с языковой моделью
Используется для взаимодействия с большой языковой моделью. Представляет собой окно с чатом и боковой панелью для выбора истории чата при значении true свойства MultiChat. Отправка запросов и получение ответов от большой языковой модели является зоной ответственности разработчика, и выполняется обработчиком события OnRequest.
Массив параметров чатов должен иметь следующий формат:
[
{
"id": "0d536d5a",
"title": "Мой новый чат",
"messagesCount": 4,
"lastMessage": "2024-07-22T13:08:18.958155",
"contextId": 1,
"thinkMode": true
},
]
Массив истории сообщений чата должен иметь следующий формат:
[
{
"id": "8aae6118-ac48-411e-8d80-de196f44d7ba",
"role": "human",
"timestamp": "2024-07-22T13:08:06.421111"
"type": "file",
"fileId": "8ebb7c66-3b64-4a02-b626-b2d8e096e427",
"fileName": "Руководство_по_разработке_на_базе_Платформы.pdf",
"fileType": "pdf",
"contentType": "application/pdf",
"fullPath": "/some/path/yeah/Руководство_по_разработке_на_базе_Платформы.pdf",
},
{
"id": "8aae6118-ac48-411e-8d80-de196f44d7bf",
"role": "ai",
"timestamp": "2024-07-22T13:08:06.420996"
"type": "message",
"content": "Да, Платформу можно использовать на мобильных устройствах под управленем iOS и Android.
Разработчики приложений на базе Платформы могут создавать мобильные приложения, которые можно запускать на различных мобильных устройствах.",
"sources": {
"3cdb2314-9751-4969-a4b9-14da8a757c61": {
"id": "3cdb2314-9751-4969-a4b9-14da8a757c61",
"seqNr": 1,
"fileType": "pdf",
"fileId": "8ebb7c66-3b64-4a02-b626-b2d8e096e427",
"path": "/some/path/yeah/Руководство_по_разработке_на_базе_Платформы.pdf",
"url": "https://s139116.dev.cifrum.local/v2/File/ByPath/Руководство_по_разработке_на_базе_Платформы.pdf",
"content": "Каждый пользователь приложения может иметь одну или несколько ролей. Пользователь может выполнить определенное действие, если в наборе его ролей есть роль с разрешением на это действие. Пользователь не может выполнить определенное действие, если в наборе его ролей есть роль с запретом на это действие. Для каждой роли пользователя вы формируете правила, включающие разрешение или запрет на выполнение пользовательской ролью действия над объектом."
},
},
},
]
Пример использования
<AiChat
Prompt-var="Prompts"
Chats={[{ id: "0", title: "New chat" }]}
MultiChat={true}
OnRequest={() => { const { query, chatId, chat, files } = getEvent(); }}
/>
Свойства
AllowedFileTypes
Массив разрешенных расширений и/или MIME-типов файлов для загрузки
Тип: array
AttachedFiles
Псевдоним для InputAttachedFiles, OutputAttachedFiles
Тип: object
Значение по умолчанию: <pre>{}</pre>
Badge
Количественная информация в компонентах Menu, Accordion, Link, Text.
В качестве значения может использоваться объект с полями: counter (число), position ("post" или "pre"), color (цвет)
Тип: any
CSS
Массив строк-классов CSS-стилей, описанных в файле CSS.css разрабатываемого проекта или встроенных CSS-стилей Платформы.
Пример:
// внешние (m) и внутренние (p) отступы для компонента. Число после символа "-" (в этом примере - 4) должно быть кратно величине, указанной в параметре, определяющем кратность отступов, в файле Style.mdtheme разрабатываемого проекта.
CSS={["m-4", "p-4"]}
Тип: array
ChatId
Псевдоним свойств InputChatId и OutputChatId
Тип: string
Chats
Псевдоним свойств InputChats и OutputChats
Тип: array
CombineConfig
Служебное свойство, используемое в визуальном режиме Редактора Форм, для присваивания значений свойствам компонента в виде генерируемых блоков кода. Запрещено изменять значение.
Тип: object
ContextsList
Массив контекстов поиска согласно установленному формату (см. описание компонента)
Тип: array
Hidden
Признак состояния компонента Скрыт.
Тип: boolean
Hint
Текст, отображаемый при наведении указателя мыши на компонент. Текст отображается на белом фоне
Тип: any
Id
Идентификатор компонента для навигации к нему на HTML-странице. Подробнее см. HTML id Attribute или ID
Тип: string
InputAttachedFiles
Входной параметр компонента: словарь с ключами - идентификаторами чатов и значеними - массивами файлов
Тип: object
Значение по умолчанию: <pre>{}</pre>
InputChatId
Входной параметр компонента: идентификатор открытого чата
Тип: string
InputChats
Входной параметр компонента: массив параметров чатов согласно установленному формату (см. описание компонента)
Тип: array
InputPrompt
Входной параметр компонента: словарь с ключами - идентификаторами чатов и значеними - текстами неотправленных сообщений
Тип: object
Значение по умолчанию: <pre>{}</pre>
LocalizationDictionary
Имя словаря для локализации строк в чате
Тип: string
Messages
Массив сообщений выбранного чата согласно установленному формату (см. описание компонента)
Тип: array
MessagesDeclensionHandler
Функция получения плюральной формы для строки с ключом MessageNumeral из словаря локализации LocalizationDictionary. В качестве параметров принимает число, которое должно быть согласовано со значением в MessageNumeral в текущей локали
Тип: undefined
MultiChat
Признак организации нескольких чатов
Тип: boolean
Значение по умолчанию: True
OnChange
Обработчик события изменения параметров чата.
В качестве параметра принимает объект со следующими полями:
- id - идентификатор чата;
- title - имя чата;
- contextId - идентификатор контекста диалога;
- messagesCount - количество сообщений в чате;
- thinkMode - признак режима размышлений;
- lastMessage - дата последнего сообщения.
Пример:
OnChange={() => { // Получение параметра события const event = getEvent(); // Вывод параметра события в консоль браузера console.log(event); } }
Тип: undefined
OnClick
Обработчик события нажатия левой кнопки мыши, когда указатель мыши находится на компоненте.
В качестве параметра принимает объект типа объект события компонента экранной формы с дополнительными полями типа MouseEvent.
Пример:
OnClick={() => {
// Получение параметра события
const event = getEvent();
// Вывод параметра события в консоль браузера
console.log(event);
}
}
Тип: undefined