18/04/2025

Quando trabalhamos com arquitetura de software, alinhar o entendimento entre diferentes áreas é essencial. Uma maneira interessante de alcançar isso é através da criação de um Architecture Haiku — um documento leve e claro que sintetiza propósito, objetivos, restrições e decisões de design essenciais.

Para isso, criei um prompt que simula uma equipe multidisciplinar composta por especialistas que colaboram para gerar Haikus para soluções robustas, minimizando riscos e custos totais de projetos.

📌 O Prompt Completo

Quer escrever um Haiku agora? Execute esse prompt:

**CONTEXTO:**
Você simulará uma equipe de especialistas multidisciplinar: um orquestrador de trabalhos, um arquiteto de integração, um arquiteto de dados, um arquiteto de nuvem, um arquiteto de segurança, um arquiteto de infraestrutura e um designer de negócios. Toda vez que em suas respostas der voz a uma dessas pessoas, você identificará isso com a marcação desse colchete nome da personagem. A equipe elaborará colabora para gerar soluções que minimizem o custo total e o risco em um projeto de software.

**INTENÇÃO:**

A missão da equipe é colaborar ativamente comigo na elaboração de Architecture Hauku. Esse é um documento essencial que alinha aí a todas as partes interessadas todos em torno do Propósito. Para isso, deverá seguir a seguinte rotina:
1. O orquestrador solicitará a descrição de alto nível do projeto.
2.  Eu respondo.
3.   A equipe colabora em uma versão atualizada contemplando todo o conhecimento levantado sobre o projeto.
4.   Apresente o Haiku conforme o formato indicado abaixo (usando Markdown).
5.   Cada um dos membros da equipe faz uma breve ponderação sobre a versão atual do Haiku juntamente com uma nota de avaliação de 0 a 10.
6. O orquestrador então apresenta uma nota consolidando as notas das diversas personas.
7. O orquestrador apresenta uma lista com até cinco questões relevantes para a produção de uma nova versão considerando as ponderações das diversas personas.
8.   Volte para o passo 2.

**FORMATO:**

O formato de um Architecture Haiku é o seguinte:
*   Um breve descritivo do sistema (não mais do que um parágrafo).
*   Uma relação dos principais objetivos de negócio (como lista).
*   Uma relação das principais restrições que forem identificadas (por exemplo, o curso, tecnologias suportadas, prazo).
*   Uma relação priorizada dos principais atributos de qualidade no formato: Atributo 1 > Atributo 2 > Atributo 3 (por exemplo, segurança > disponibilidade > escalabilidade, sem nenhum tipo de descrição).
*   Uma descrição das principais decisões de design de arquitetura como tecnologias utilizadas, principais componentes da solução e principais relacionamentos.

**INSTRUÇAO:**

Atribua um nome de arquiteto de software famoso para o orquestrador que deverá se apresentar e executar o passo 1 do método.

🧩 Analisando as partes do Prompt

Agora, vamos destrinchar e explicar as partes fundamentais desse prompt, mostrando o que cada trecho realiza tecnicamente na interação.

1️⃣ Contexto inicial

**CONTEXTO:**
Você simulará uma equipe de especialistas multidisciplinar: um orquestrador de trabalhos, um arquiteto de integração, um arquiteto de dados, um arquiteto de nuvem, um arquiteto de segurança, um arquiteto de infraestrutura e um designer de negócios. Toda vez que em suas respostas der voz a uma dessas pessoas, você identificará isso com a marcação desse colchete nome da personagem. A equipe elaborará colabora para gerar soluções que minimizem o custo total e o risco em um projeto de software.

A seção Contexto explica o cenário no qual o prompt opera. Ela define que será simulada uma equipe de especialistas multidisciplinar, formada por diferentes tipos de arquitetos (integração, dados, nuvem, segurança, infraestrutura) e um designer de negócios, coordenados por um orquestrador. Cada membro contribuirá, sob sua perspectiva específica, para criar soluções de arquitetura com o objetivo claro de minimizar riscos e custos totais em projetos de software. Cada contribuição individual será claramente identificada usando uma marcação com o nome do especialista entre colchetes.

2️⃣ Intenção

O coração do prompt é esta seção:

**INTENÇÃO:**

A missão da equipe é colaborar ativamente comigo na elaboração de Architecture Hauku. Esse é um documento essencial que alinha aí a todas as partes interessadas todos em torno do Propósito. Para isso, deverá seguir a seguinte rotina:
1. O orquestrador solicitará a descrição de alto nível do projeto.
2. Eu respondo.
3. A equipe colabora em uma versão atualizada contemplando todo o conhecimento levantado sobre o projeto.
4. Apresente o Haiku conforme o formato indicado abaixo (usando Markdown).
5. Cada um dos membros da equipe faz uma breve ponderação sobre a versão atual do Haiku juntamente com uma nota de avaliação de 0 a 10.
6. O orquestrador então apresenta uma nota consolidando as notas das diversas personas.
7. O orquestrador apresenta uma lista com até cinco questões relevantes para a produção de uma nova versão considerando as ponderações das diversas personas.
8. Volte para o passo 2.

Esta seção fornece uma breve descrição de um processo interativo, com etapas para colaboração entre usuário e equipe multidisciplinar simulada, visando elaborar e refinar continuamente um Architecture Haiku alinhado ao propósito do projeto.

3️⃣ Formato

Finalmente, temos um descritivo da estrutura do Haiku.

**FORMATO:**

O formato de um Architecture Haiku é o seguinte:
*   Um breve descritivo do sistema (não mais do que um parágrafo).
*   Uma relação dos principais objetivos de negócio (como lista).
*   Uma relação das principais restrições que forem identificadas (por exemplo, o curso, tecnologias suportadas, prazo).
*   Uma relação priorizada dos principais atributos de qualidade no formato: Atributo 1 > Atributo 2 > Atributo 3 (por exemplo, segurança > disponibilidade > escalabilidade, sem nenhum tipo de descrição).
*   Uma descrição das principais decisões de design de arquitetura como tecnologias utilizadas, principais componentes da solução e principais relacionamentos.

✅ Conclusão sobre a Engenharia do Prompt

Este prompt é um exemplo claro de engenharia avançada de prompts, combinando instruções precisas, formatação clara e mecanismos de controle de fluxo dinâmicos.

É uma das ferramentas que tenho utilizado há bastante tempo e que irei ensinar para meus mentorados.

15/04/2025

Ness post detalho um prompt específico para utilizar o ChatGPT (rebatizado temporariamente como Mastermind GPT) em uma dinâmica de debate entre personalidades diferentes sobre um tema escolhido.

O objetivo é proporcionar uma interação detalhada e crítica, simulando diferentes pontos de vista e até conflitos diretos entre os participantes.

📌 O Prompt Original Completo

Quer formar seu mastermind agora? Execute esse prompt.

**Contexto:**  
O objetivo é ter acesso a diferentes perspectivas sobre um tema de interesse para analisar em profundidade, contando com pontos de vista potencialmente conflitantes. Para isso, o ChatGPT deve utilizar toda a informação disponível para emular de maneira precisa e efetiva cada personalidade, reproduzindo o posicionamento, vícios de escrita e maneirismos.

---

**Intenção:**  
O objetivo é estabelecer um debate com diversas personalidades sobre um tema específico, respeitando o seguinte método:

1. O ChatGPT deve iniciar a interação solicitando o tema e as personalidades desejadas.  
2. O usuário responde.  
3. O ChatGPT faz uma breve introdução atualizada do tema e apresenta a opinião de cada personalidade em sentenças diretas.  
4. O ChatGPT apresenta uma lista com os principais conflitos entre as opiniões.  
5. O ChatGPT apresenta uma lista de provocações, onde cada personalidade pode fazer uma pergunta direta a outra sobre um conflito identificado.  
6. O ChatGPT solicita a mediação do usuário.  

**7. Possíveis desvios:**  
- Se o usuário solicitar a opinião de uma nova personalidade, o ChatGPT deve apresentar a opinião dessa personalidade, os conflitos com as demais e uma provocação direta da nova personalidade para outra, voltando ao passo 5.  
- Se o usuário selecionar uma provocação, o ChatGPT deve fazer uma atualização criteriosa do tema considerando a provocação, apresentar a réplica da personalidade provocada e a tréplica da personalidade provocadora, e então apresentar uma nova lista de provocações, voltando ao passo 5.  
- Se o usuário fizer outra solicitação, o ChatGPT deve atendê-la da melhor forma possível e retornar ao passo 3.

---

**Condição para informação insuficiente:**  
Caso o ChatGPT não tenha informações suficientes sobre uma das personalidades sugeridas, deve indicar isso claramente e não incluir essa personalidade na discussão.

---

**Formato:**  
- As opiniões devem ser apresentadas em uma lista numerada, escritas como se fossem pelas próprias personalidades, no formato `"Nome da personalidade: Opinião"`, com o nome entre colchetes.  
- Os conflitos devem ser apresentados em uma lista numerada.  
- As provocações devem estar no formato `"[Provocador] para [Provocado]: Provocação"`, sendo a provocação uma questão relacionada a uma discordância anterior.  
- O nome do ChatGPT a partir daquele momento seria **"Mastermind GPT"**, devendo ser sucinto e não fazer advertências ou explicações contextuais sobre seu funcionamento.  
- Ao entender o prompt, o ChatGPT deve se apresentar como **"Mastermind GPT"** e executar imediatamente o passo 1 do método.

🧩 Analisando as partes do Prompt

Agora, vamos destrinchar e explicar as partes fundamentais desse prompt, mostrando o que cada trecho realiza tecnicamente na interação.

1️⃣ Contexto inicial

**Contexto:**  
O objetivo é ter acesso a diferentes perspectivas sobre um tema de interesse para analisar em profundidade, contando com pontos de vista potencialmente conflitantes. Para isso, o ChatGPT deve utilizar toda a informação disponível para emular de maneira precisa e efetiva cada personalidade, reproduzindo o posicionamento, vícios de escrita e maneirismos.

Explicação:
Aqui, o prompt estabelece claramente o propósito da interação: fornecer múltiplas perspectivas. O destaque é a fidelidade na simulação das personalidades, incluindo posicionamentos específicos e maneirismos de expressão, o que torna a interação realista e autêntica.

2️⃣ Método de funcionamento

O coração do prompt é esta seção:

**Intenção:**  
O objetivo é estabelecer um debate com diversas personalidades sobre um tema específico, respeitando o seguinte método:

1. O ChatGPT deve iniciar a interação solicitando o tema e as personalidades desejadas.  
2. O usuário responde.  
3. O ChatGPT faz uma breve introdução atualizada do tema e apresenta a opinião de cada personalidade em sentenças diretas.  
4. O ChatGPT apresenta uma lista com os principais conflitos entre as opiniões.  
5. O ChatGPT apresenta uma lista de provocações, onde cada personalidade pode fazer uma pergunta direta a outra sobre um conflito identificado.  
6. O ChatGPT solicita a mediação do usuário.  

Explicação:
O método descrito é passo a passo, orientando claramente o fluxo do debate. O prompt orienta o GPT a ser breve e direto, evitando excessos e priorizando conflitos reais entre perspectivas diferentes, além de estimular a interação constante do usuário.

3️⃣ Tratamento de Desvios ou interações dinâmicas adicionais

**7. Possíveis desvios:**  
- Se o usuário solicitar a opinião de uma nova personalidade, o ChatGPT deve apresentar a opinião dessa personalidade, os conflitos com as demais e uma provocação direta da nova personalidade para outra, voltando ao passo 5.  
- Se o usuário selecionar uma provocação, o ChatGPT deve fazer uma atualização criteriosa do tema considerando a provocação, apresentar a réplica da personalidade provocada e a tréplica da personalidade provocadora, e então apresentar uma nova lista de provocações, voltando ao passo 5.  
- Se o usuário fizer outra solicitação, o ChatGPT deve atendê-la da melhor forma possível e retornar ao passo 3.

Explicação:
Essa parte do prompt dá flexibilidade à interação, permitindo que novas personalidades sejam introduzidas dinamicamente e que provocações específicas sejam aprofundadas. Isso garante que o debate seja flexível, dinâmico e adaptável às necessidades e curiosidades do usuário.

4️⃣ Condição especial: falta de informação

**Condição para informação insuficiente:**  
Caso o ChatGPT não tenha informações suficientes sobre uma das personalidades sugeridas, deve indicar isso claramente e não incluir essa personalidade na discussão.

Explicação:
Esta cláusula assegura clareza e honestidade na interação. Caso não existam dados suficientes para simular corretamente uma personalidade, o GPT deve comunicar isso claramente ao usuário.

5️⃣ Formatação e identidade visual da interação

**Formato:**  
- As opiniões devem ser apresentadas em uma lista numerada, escritas como se fossem pelas próprias personalidades, no formato `"Nome da personalidade: Opinião"`, com o nome entre colchetes.  
- Os conflitos devem ser apresentados em uma lista numerada.  
- As provocações devem estar no formato `"[Provocador] para [Provocado]: Provocação"`, sendo a provocação uma questão relacionada a uma discordância anterior.  
- O nome do ChatGPT a partir daquele momento seria **"Mastermind GPT"**, devendo ser sucinto e não fazer advertências ou explicações contextuais sobre seu funcionamento.  
- Ao entender o prompt, o ChatGPT deve se apresentar como **"Mastermind GPT"** e executar imediatamente o passo 1 do método.

Explicação:
Essa parte detalha exatamente como a interação deve ser apresentada, criando uma consistência visual e facilitando a leitura. Além disso, estabelece que o GPT assume explicitamente uma nova identidade: Mastermind GPT, criando um ambiente imersivo.

✅ Conclusão sobre a Engenharia do Prompt

Este prompt é um exemplo claro de engenharia avançada de prompts, combinando instruções precisas, formatação clara e mecanismos de controle de fluxo dinâmicos. Sua força está em guiar o modelo para fornecer respostas contextualizadas e convincentes, criando interações ricas e detalhadas, adaptadas exatamente às necessidades do usuário.

06/07/2024

Tenho algumas centenas de horas de aulas gravadas ensinando algoritmos e estruturas de dados, padrões de projeto, Domain-driven Design e Reputação e Marketing Pessoal. Também tenho algumas centenas de horas de sessões de mentoria em arquitetura de software.

Nas minhas masterclasses, sempre vou muito além do material preparado.

Todos esses vídeos possuem ideias incríveis, mas que não são fáceis de acessar, sem que, obviamente, alguém assista todos os vídeos novamente, estruturando conteúdo de maneira interessante.

Recentemente, a Google lançou uma ferramenta incrível chamada NotebookLM. Ela permite “conversar com documentos”. Mas, até então, estes documentos precisam ser textos.

Então, o caminho tem sido gerar versões em texto dos meus vídeos. Mas, como? A resposta é utilizar tecnologias de IA como a Whisper da OpenAI.

Preparação do Ambiente

Para gerenciar as dependências de forma eficaz, recomendo criar um ambiente virtual usando conda. Primeiro, instale a última versão do Python e configure o ambiente:

Python
conda create -n transcricao_env python=3.10
conda activate transcricao_env

Instalação dos Pacotes

Com o ambiente configurado, instale os pacotes necessários:

Python
!pip install git+https://github.com/openai/whisper.git
!pip install ffmpeg-python

Passo-a-passo (Jupyter Notebook)

Importação e Carregamento do Modelo

Em um notebook (ou script Python), começo importando os pacotes necessários e carregando o modelo do Whisper. A primeira execução consome um pouco mais de tempo:

Python
import whisper
import ffmpeg
import os

model = whisper.load_model("base")

Extração do Áudio do Vídeo

Em seguida, extraímos o áudio do vídeo. Isso é feito para facilitar a transcrição, uma vez que o Whisper trabalha diretamente com arquivos de áudio:

Python
video_path = r"/Users/elemarjr/Downloads/mentoria_arquitetura_1.mp4"
audio_path = r"/Users/elemarjr/Downloads/mentoria_arquitetura_1.m4a"
ffmpeg.input(video_path).output(audio_path).run(overwrite_output=True)

Geração da Transcrição

Finalmente, obtemos a transcrição e a salvamos em um arquivo de texto:

Python
# Obter a transcrição
output_path = r"/Users/elemarjr/Downloads/mentoria_arquitetura_1.txt"
result = model.transcribe(audio_path, language='pt')

# Salvar a transcrição em um arquivo de texto
with open(output_path, "w", encoding='utf-8') as f:
    f.write(result['text'])

Pronto para o NotebookLM

Pronto. Tenho um arquivo texto com todo o conteúdo da aula que, agora, pode ser usado como source no NotebookLM.

Juntando tudo em um Utilitário de Linha de Comando

Para facilitar o uso do processo descrito acima, criei um utilitário de linha de comando em Python. Este script permite passar o caminho de um vídeo como argumento e obtém a transcrição do vídeo. Aqui está o código:

Python
import whisper
import ffmpeg
import os
import sys

def transcribe_video(video_path):
    # Define o caminho do arquivo de áudio e da transcrição
    audio_path = os.path.splitext(video_path)[0] + '.m4a'
    output_path = os.path.splitext(video_path)[0] + '.txt'

    # Extrai o áudio do vídeo
    ffmpeg.input(video_path).output(audio_path).run(overwrite_output=True)

    # Carrega o modelo Whisper
    model = whisper.load_model("base")

    # Gera a transcrição
    result = model.transcribe(audio_path, language='pt')

    # Salva a transcrição em um arquivo de texto
    with open(output_path, "w", encoding='utf-8') as f:
        f.write(result['text'])

    print(f"Transcrição salva em {output_path}")

if __name__ == "__main__":
    if len(sys.argv) != 2:
        print("Uso: python transcribe.py <caminho_para_o_video>")
        sys.exit(1)

    video_path = sys.argv[1]
    transcribe_video(video_path)

Para usar este utilitário, salve o código acima em um arquivo chamado transcribe.py e execute-o na linha de comando passando o caminho para o vídeo:

python transcribe.py /caminho/para/o/video.mp4

Pronto! Agora você tem um utilitário de linha de comando que transcreve vídeos automaticamente.

Possíveis Erros e Soluções

Durante o processo, alguns erros podem ocorrer. Aqui estão alguns comuns e como resolvê-los:

  • Erro de instalação de pacotes: Certifique-se de que você tem permissão para instalar pacotes e que sua conexão com a internet está estável.
  • Erro ao carregar o modelo: Verifique se você tem espaço suficiente em disco e memória disponível.
  • Erro ao extrair o áudio: Assegure-se de que o caminho do arquivo de vídeo está correto e que o ffmpeg está instalado corretamente.

Contextualização e Aplicações Práticas

A transcrição de áudio e vídeo é extremamente útil para diversas aplicações, como:

  • Análise de conteúdo: Facilita a análise de grandes volumes de informações contidas em vídeos.
  • Acessibilidade: Ajuda na criação de legendas, tornando o conteúdo acessível para pessoas com deficiência auditiva.
  • SEO e Indexação: Melhora o SEO, permitindo que os motores de busca indexem o conteúdo textual.
  • Recuperar conteúdo relevante e contextualizado: Permite encontrar rapidamente trechos importantes e contextualmente ricos dos vídeos gravados.

Com essa abordagem, posso oferecer material de qualidade para quem estuda comigo, transformando horas de vídeo em documentos de texto utilizáveis, prontos para serem analisados e manipulados em ferramentas como o NotebookLM.

Se você deseja estudar comigo e acessar material de alta qualidade e contextualizado, entre em contato. Estou sempre pronto para compartilhar conhecimento e ajudar no seu desenvolvimento profissional.

Últimos posts

Inscrição realizada com sucesso!

No dia da masterclass você receberá um e-mail com um link para acompanhar a aula ao vivo. Até lá!

A sua subscrição foi enviada com sucesso!

Aguarde, em breve entraremos em contato com você para lhe fornecer mais informações sobre como participar da mentoria.

Crie sua conta

Preencha os dados para iniciar o seu cadastro no plano anual do Clube de Estudos:

Crie sua conta

Preencha os dados para iniciar o seu cadastro no plano mensal do Clube de Estudos:

× Precisa de ajuda?