From 4ee44fd953a710445a96fdc67f010b42330bdda1 Mon Sep 17 00:00:00 2001 From: Rodrigo Borba Date: Tue, 6 Jan 2026 12:57:56 -0300 Subject: [PATCH] feat: Adiciona gerenciamento de prompt de sistema com blocos e versionamento para assistentes, e atualiza terminologia de ferramentas para poderes.` --- .../i18n/locale/pt_BR/integrations.json | 50 ++++- .../dashboard/i18n/locale/pt_BR/settings.json | 2 +- .../captain/assistants/tools/Index.vue | 172 +++++++++++++++--- .../routes/dashboard/captain/tools/Index.vue | 4 - .../accounts/captain/assistants_controller.rb | 50 ++++- .../captain/llm/system_prompts_service.rb | 59 +++++- .../models/captain/_assistant.json.jbuilder | 8 + 7 files changed, 302 insertions(+), 43 deletions(-) diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json b/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json index 7ea0388..9ad4dbd 100755 --- a/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/integrations.json @@ -503,6 +503,32 @@ "LABEL": "Instruções", "PLACEHOLDER": "Digite as instruções para o assistente" }, + "SYSTEM_PROMPT": { + "LABEL": "System Prompt", + "PLACEHOLDER": "Edite o system prompt usado pelo assistente", + "SAVE_VERSION": "Salvar versão", + "REVERT_LAST": "Reverter última", + "RESTORE_DEFAULT": "Restaurar padrão" + }, + "SYSTEM_PROMPT_BLOCKS": { + "LABEL": "Blocos do system prompt", + "ADD": "Adicionar bloco", + "EDIT": "Editar", + "REMOVE": "Remover", + "CANCEL": "Cancelar", + "DONE": "Concluir", + "VIEW_FULL": "Ver prompt completo", + "PREVIEW_TITLE": "System prompt completo", + "EDIT_TITLE": "Editar bloco", + "TITLE_LABEL": "Título do bloco", + "TITLE_PLACEHOLDER": "ex.: Identidade", + "CONTENT_LABEL": "Conteúdo do bloco", + "CONTENT_PLACEHOLDER": "Escreva o conteúdo deste bloco", + "EMPTY_CONTENT": "Sem conteúdo", + "CHAR_COUNT": "{{count}} / {{limit}} caracteres", + "LIMIT_WARNING": "O tamanho do prompt excede o limite para este modelo.", + "CLOSE": "Fechar" + }, "FEATURES": { "TITLE": "Funcionalidades", "ALLOW_CONVERSATION_FAQS": "Gerar perguntas frequentes a partir de conversas resolvidas", @@ -713,6 +739,26 @@ } } } + , + "SKILLS": { + "HEADER": "Skills do assistente", + "DESCRIPTION": "Configure as capacidades e ferramentas disponíveis para este assistente.", + "SAVING": "Salvando...", + "CONFIGURATION": "Configuração", + "EMPTY_STATE": "Nenhuma skill disponível para este assistente.", + "WEBHOOK_URL": { + "LABEL": "Webhook URL", + "PLACEHOLDER": "https://oxpi.com.br/api/..." + }, + "PLUG_PLAY_ID": { + "LABEL": "Plug&Play Client ID", + "PLACEHOLDER": "Client ID" + }, + "PLUG_PLAY_TOKEN": { + "LABEL": "Plug&Play Token", + "PLACEHOLDER": "Token" + } + } }, "DOCUMENTS": { "HEADER": "Documentos", @@ -772,8 +818,8 @@ } }, "CUSTOM_TOOLS": { - "HEADER": "Ferramentas", - "ADD_NEW": "Criar ferramenta", + "HEADER": "Poderes", + "ADD_NEW": "Criar poder", "EMPTY_STATE": { "TITLE": "Não há ferramentas personalizadas disponíveis", "SUBTITLE": "Crie ferramentas personalizadas para conectar com APIs e serviços externos, permitindo obter dados e agir por você.", diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json index d7a34cb..e27a149 100755 --- a/app/javascript/dashboard/i18n/locale/pt_BR/settings.json +++ b/app/javascript/dashboard/i18n/locale/pt_BR/settings.json @@ -313,7 +313,7 @@ "CAPTAIN_ASSISTANTS": "Assistentes", "CAPTAIN_DOCUMENTS": "Documentos", "CAPTAIN_RESPONSES": "FAQs", - "CAPTAIN_TOOLS": "Ferramentas", + "CAPTAIN_TOOLS": "Poderes", "CAPTAIN_SCENARIOS": "Cenários", "CAPTAIN_PLAYGROUND": "Playground", "CAPTAIN_INBOXES": "Caixas de Entrada", diff --git a/app/javascript/dashboard/routes/dashboard/captain/assistants/tools/Index.vue b/app/javascript/dashboard/routes/dashboard/captain/assistants/tools/Index.vue index d041ef8..ec84d51 100644 --- a/app/javascript/dashboard/routes/dashboard/captain/assistants/tools/Index.vue +++ b/app/javascript/dashboard/routes/dashboard/captain/assistants/tools/Index.vue @@ -1,10 +1,15 @@ diff --git a/app/javascript/dashboard/routes/dashboard/captain/tools/Index.vue b/app/javascript/dashboard/routes/dashboard/captain/tools/Index.vue index c350e76..41c508b 100755 --- a/app/javascript/dashboard/routes/dashboard/captain/tools/Index.vue +++ b/app/javascript/dashboard/routes/dashboard/captain/tools/Index.vue @@ -1,8 +1,6 @@