# Запрос к GroqChat

Этот блок позволяет отправлять запросы к генеративным моделям GroqChat. С его помощью вы можете создавать новые тексты по запросу, выполнять разнообразные задачи:

* классификации,
* суммаризации,
* перевода и рерайтинга текстов,
* написания прототипов кода на разных языках программирования,
* парсить полуструктурированные и неструктурированные данные,
* извлекать и обрабатывать факты,
* поддерживать диалог на разнообразные темы, и многое другое.

Оплата за использование данного функционала списывается с лицевого счета клиента на платформе. Для тестовых целей каждому новому Пользователю даётся возможность протестировать данный функционал без оплаты. При использовании данного функционала после окончания разработки Робота необходима оплата.

<table data-header-hidden><thead><tr><th width="306.81671142578125" valign="top"></th><th width="322.44989013671875" valign="top"></th></tr></thead><tbody><tr><td valign="top">История чата</td><td valign="top"><p>[Таблица Данных] Добавьте историю чата, на основе контекста которого нейросеть должна сгенерировать ответ. Указанная таблица данных должна содержать колонки с именами "role" и "content".</p><p>При отсутствии таких колонок в качестве "role" будет использована первая колонка таблицы, в качестве "content" - вторая колонка. В колонке "role" можно указать только одно из следующих значений:</p><ul><li>system,</li><li>assistant,</li><li>user.</li></ul><p>Роль system предназначена для настройки тональности и базовых установок нейросети, например:</p><ul><li>с ролью "system" можно написать <code>"You are helpful assistant on used cars selection. You know everything on how to choose the best deal for used car"</code>,</li><li>с ролью "assistant" рекомендуется включать предыдущие сообщения, сгенерированный самой нейросетью,</li><li>с ролью "user" рекомендуется включать реплики, написанные пользователем-собеседником.</li></ul><p>Более старые сообщения должны быть размещены в начале таблицы, более новые - в конце таблицы. Колонка "content" должна содержать само сообщение.</p><p>Данное свойство можно оставить пустым, тогда генерация будет выполнена только по содержимому свойств "Роль" и "Запрос".</p><p>Если используется свойство "Инструменты", то в таблице должно быть 4 колонки:</p><ul><li>"role",</li><li>"content",</li><li>"tool_call_id",</li><li>"name".</li></ul></td></tr><tr><td valign="top">Запрос System</td><td valign="top">[Текст] Введите текст нового запроса к нейросети. Запрос будет выполняться с ролью system.</td></tr><tr><td valign="top">Запрос User</td><td valign="top">[Текст] Введите текст нового запроса к нейросети. Запрос будет выполняться с ролью user.</td></tr><tr><td valign="top">Модель</td><td valign="top">Выберите модель для генерации ответа.</td></tr><tr><td valign="top">Стоп-слова</td><td valign="top">[Текст/Список] Строка или список, содержащий не более 4 строк, которые остановят дальнейшую генерацию. Возвращаемый текст не будет содержать эти слова.</td></tr><tr><td valign="top">Температура</td><td valign="top"><p>[Число] Десятичное дробное число от 0 до 1, показывающее степень "случайности" или "креативности" результата, где:</p><ul><li>0 - наименее креативный результат,</li><li>1 - максимально случайный.</li></ul><p>Для большинства творческих задач лучше подходит значение 0.7, а если вы хотите на один и тот же запрос каждый раз получать одинаковый ответ - установите значение 0.</p></td></tr><tr><td valign="top">Максимальная длина</td><td valign="top"><p>[Число] Максимальная длина результата, выраженная в условных токенах.</p><p>Для английского языка 1 токен - это 4 символа, для большинства других языков 1 токен - это 1 символ.</p><p>Уменьшите это число, если хотите получать в среднем более короткие запросы, увеличьте для получения более длинных запросов. Учтите, что данное число ограничивает длину ответа, однако не обязательно полученный ответ будет указанной вами длины - в зависимости от содержимого запроса он может быть короче.</p></td></tr><tr><td valign="top">Автоограничение длины</td><td valign="top">При включении указанная максимальная длина будет автоматически скорректирована. Для этого вычисляется количество токенов в запросе и учитывается максимально возможное количество токенов для выбранной модели.</td></tr><tr><td valign="top">Инструменты</td><td valign="top"><p>[Таблица Данных] Таблица с описанием инструментов, которые может выбрать нейросеть для решения задачи вместо текстового ответа. Этот функционал поддерживают не все модели.</p><p>Таблица данных должна содержать три колонки:</p><ul><li>"name" - название инструмента (латинские буквы и цифры, не более 64 символов),</li><li>"description" - описание инструмента (может быть на отличных от английского языках),</li><li>"parameters" - аргументы передаваемые в инструмент при его вызове в формате JSON.</li></ul><p>Пример JSON-описания параметров: <code>"{\"type\": \"object\", \"properties\": { \"query\": { \"type\": \"string\", \"description\": \"Request for a Google search result\" } }, \"required\": [\"query\"] }"</code>.</p><p>При вызове инструмента нейросеть выберет подходящий инструмент из числа доступных, опираясь на указанное вами описание инструментов, а также заполнит (сгенерирует) значения указанных вами параметров для вызова этих инструментов.</p><p>Более подробно про механизм использования инструментов можно узнать из описания выходного свойства CalledTools.</p></td></tr><tr><td valign="top">Таймаут</td><td valign="top"><p>[Число] Максимальное время ожидания ответа в секундах. Реальное время ожидания зависит от выбранной модели, длины вашего запроса и прогнозируемой длины ответа, а также от текущей загруженности серверов.</p><p>В случае превышения установленного предела ожидания возникает ошибка.</p></td></tr><tr><td valign="top">Схема ответа</td><td valign="top">[Текст] Схема ответа в формате JSON. Например:<br>{<br>"name": "weather",<br>"strict": true,<br>"schema": {<br>"type": "object",<br>"properties": {<br>"location": {<br>"type": "string",<br>"description": "City or location name"<br>},<br>"temperature": {<br>"type": "number",<br>"description": "Temperature in Celsius"<br>},<br>"conditions": {<br>"type": "string",<br>"description": "Weather conditions description"<br>}<br>},<br>"required": ["location", "temperature", "conditions"],<br>"additionalProperties": false<br>}<br>}</td></tr><tr><td valign="top">Количество попыток</td><td valign="top">[Число] Количество попыток при возникновении ошибки связи с сервером.</td></tr><tr><td valign="top">Роль ответа</td><td valign="top">[Текст] Роль, с которой ответила нейросеть.</td></tr><tr><td valign="top">Ответ</td><td valign="top">[Текст] Текст ответа нейросети.</td></tr><tr><td valign="top">Размышления</td><td valign="top">[Текст] Размышления нейросети (если они есть в ответе).</td></tr><tr><td valign="top">Итоговая длина</td><td valign="top">[Число] Итоговая длина запроса и результата (объединенных вместе), выраженная в условных токенах.</td></tr><tr><td valign="top">Вызываемые инструменты</td><td valign="top"><p>[Список] Список объектов ToolItem.</p><p>Если нейросеть после запроса вместо текстового ответа предлагает использовать один или несколько инструментов, указанные в свойстве "Инструменты", то в данном свойстве будет возвращен список объектов ToolItem.</p><p>Объект содержит следующие свойства:</p><ul><li>id,</li><li>name,</li><li>arguments.</li></ul><p>Значения id, name необходимо использовать в таблице "История чата". Свойство arguments является словарем, где ключ - это название параметра вызываемого инструмента, а значение является сгенерированным нейросетью значением этого параметра.</p><p>При использовании механизма инструментов после вызова данного блока вы должны проверить, выбрала ли нейросеть какой-либо инструмент, по содержимому данного списка.</p><p>Если список не пустой, вы должны самостоятельно реализовать функционал выбранного инструмента или инструментов в сценарии Робота, а затем в следующем вызове данного блока вернуть нейросети результат выполнения инструмента, который нейросеть будет использовать в генерации последующих сообщений.</p><p>Результат выполнения инструментов необходимо записывать в таблицу "История чата" следующим образом:</p><ul><li>в колонку "role" записывается константное значение "tool",</li><li>в колонку "content" - значение результата выполнения инструмента (который вы реализовали в вашем сценарии и теперь сообщаете этот результат нейросети),</li><li>в колонку "tool_call_id" - значение текущего ToolItem.id,</li><li>в колонку "name" - значение текущего ToolItem.name.</li></ul></td></tr><tr><td valign="top">Уровень обработки</td><td valign="top"><p>Выбор уровня обработки ошибок. Возможные значения:</p><ul><li>"Default" - по умолчанию;</li><li>"Ignore" - ошибки игнорируются;</li><li>"Handle" - ошибки обрабатываются.</li></ul><p>Если выбрано значение "Default", то будет использоваться значение блока "Старт" данной диаграммы.</p></td></tr><tr><td valign="top">Уровень сообщений</td><td valign="top"><p>Выбор уровня сообщений, который будут выводить блоки при работе. Возможные значения:</p><ul><li>"Default" - по умолчанию;</li><li>"Release" - вывод отключен;</li><li>"Debug" - вывод основной информации;</li><li>"Detailed" - вывод подробной информации.</li></ul><p>Если выбрано значение "Default", то будет использоваться значение блока "Старт" данной диаграммы.</p></td></tr><tr><td valign="top">Текст ошибки</td><td valign="top">[Текст] Возвращает подробную информацию об ошибке в случае некорректного выполнения работы блока.</td></tr></tbody></table>
