fix: Resolve erros de linting e conclui as correções de prompt customizado
This commit is contained in:
parent
dfa6d58e98
commit
b546c75f97
@ -1,3 +1 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class Captain::Errors::SystemPromptLeakError < StandardError; end
|
||||
|
||||
@ -35,6 +35,10 @@ module Concerns::Agentable
|
||||
end
|
||||
end
|
||||
|
||||
def default_orchestrator_prompt
|
||||
Captain::PromptRenderer.read_template(template_name)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def agent_name
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
json.account_id resource.account_id
|
||||
json.config resource.config
|
||||
json.created_at resource.created_at.to_i
|
||||
json.default_orchestrator_prompt Captain::PromptRenderer.load_template('assistant')
|
||||
json.default_orchestrator_prompt Captain::PromptRenderer.read_template('assistant')
|
||||
json.description resource.description
|
||||
json.guardrails resource.guardrails
|
||||
json.id resource.id
|
||||
|
||||
@ -3,7 +3,7 @@ require 'liquid'
|
||||
class Captain::PromptRenderer
|
||||
class << self
|
||||
def render(template_name, context = {})
|
||||
template = load_template(template_name)
|
||||
template = read_template(template_name)
|
||||
render_string(template, context)
|
||||
end
|
||||
|
||||
@ -12,7 +12,7 @@ class Captain::PromptRenderer
|
||||
liquid_template.render(stringify_keys(context))
|
||||
end
|
||||
|
||||
def load_template(template_name)
|
||||
def read_template(template_name)
|
||||
template_path = Rails.root.join('enterprise', 'lib', 'captain', 'prompts', "#{template_name}.liquid")
|
||||
|
||||
raise "Template not found: #{template_name}" unless File.exist?(template_path)
|
||||
|
||||
26
progresso/2026-02-27-orchestrator-prompt-editor.md
Normal file
26
progresso/2026-02-27-orchestrator-prompt-editor.md
Normal file
@ -0,0 +1,26 @@
|
||||
# Nota de Resolução - Editor de Prompt do Orquestrador
|
||||
|
||||
**Objetivo:** Permitir a edição do prompt do orquestrador do Capitão IA via interface administrativa.
|
||||
|
||||
**Contexto:** Anteriormente, o prompt era fixo no arquivo `.liquid`, exigindo novos builds para qualquer alteração.
|
||||
|
||||
**Passos realizados:**
|
||||
1. Criada migração para adicionar `orchestrator_prompt` em `captain_assistants`.
|
||||
2. Refatorado `Captain::PromptRenderer` para permitir a leitura de templates padrão.
|
||||
3. Implementado `Agentable#default_orchestrator_prompt` e lógica de priorização no backend.
|
||||
4. Criado componente Vue `OrchestratorPromptEditor` com validações e funcionalidade de reset.
|
||||
5. Integrado o componente na tela de configurações do assistente.
|
||||
|
||||
**Arquivos principais alterados:**
|
||||
- `enterprise/app/models/concerns/agentable.rb`
|
||||
- `enterprise/lib/captain/prompt_renderer.rb`
|
||||
- `app/javascript/dashboard/routes/dashboard/captain/assistants/settings/Settings.vue`
|
||||
- `app/javascript/dashboard/components-next/captain/pageComponents/assistant/settings/OrchestratorPromptEditor.vue`
|
||||
|
||||
**Como validar:**
|
||||
- Acessar configurações do assistente -> Prompt do Orquestrador.
|
||||
- Alterar o texto, salvar e verificar se persiste.
|
||||
- Resetar para o padrão e verificar se o texto original retorna.
|
||||
|
||||
**Como reverter:**
|
||||
- Remover a coluna `orchestrator_prompt` do banco de dados e apagar o componente Vue.
|
||||
Loading…
Reference in New Issue
Block a user