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
|
class Captain::Errors::SystemPromptLeakError < StandardError; end
|
||||||
|
|||||||
@ -35,6 +35,10 @@ module Concerns::Agentable
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def default_orchestrator_prompt
|
||||||
|
Captain::PromptRenderer.read_template(template_name)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def agent_name
|
def agent_name
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
json.account_id resource.account_id
|
json.account_id resource.account_id
|
||||||
json.config resource.config
|
json.config resource.config
|
||||||
json.created_at resource.created_at.to_i
|
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.description resource.description
|
||||||
json.guardrails resource.guardrails
|
json.guardrails resource.guardrails
|
||||||
json.id resource.id
|
json.id resource.id
|
||||||
|
|||||||
@ -3,7 +3,7 @@ require 'liquid'
|
|||||||
class Captain::PromptRenderer
|
class Captain::PromptRenderer
|
||||||
class << self
|
class << self
|
||||||
def render(template_name, context = {})
|
def render(template_name, context = {})
|
||||||
template = load_template(template_name)
|
template = read_template(template_name)
|
||||||
render_string(template, context)
|
render_string(template, context)
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -12,7 +12,7 @@ class Captain::PromptRenderer
|
|||||||
liquid_template.render(stringify_keys(context))
|
liquid_template.render(stringify_keys(context))
|
||||||
end
|
end
|
||||||
|
|
||||||
def load_template(template_name)
|
def read_template(template_name)
|
||||||
template_path = Rails.root.join('enterprise', 'lib', 'captain', 'prompts', "#{template_name}.liquid")
|
template_path = Rails.root.join('enterprise', 'lib', 'captain', 'prompts', "#{template_name}.liquid")
|
||||||
|
|
||||||
raise "Template not found: #{template_name}" unless File.exist?(template_path)
|
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