Framework educacional para engenharia de prompts com LLMs — comparação de técnicas de prompting, avaliação automática e geração de relatórios.
O PromptToolKit é uma plataforma desenvolvida para estudo e experimentação de técnicas de Prompt Engineering utilizando modelos de linguagem (LLMs).
O projeto permite:
- Executar diferentes técnicas de prompting
- Comparar respostas entre técnicas
- Avaliar acurácia e consistência
- Testar temperatura de modelos
- Gerar gráficos e relatórios automáticos
- Trabalhar com tarefas modulares
- Integrar modelos locais via Ollama
- Zero-Shot Prompting
- Few-Shot Prompting
- Chain-of-Thought (CoT)
- Role Prompting
- Sistema modular de tarefas
- Templates reutilizáveis
- Exemplos Few-Shot externos
- Integração com Ollama
- Medição de tokens
- Análise de acurácia
- Teste de consistência
- Gráficos automáticos
- Exportação de resultados
- Python 3.11+
- Pandas
- Matplotlib
- Ollama Python SDK
- python-dotenv
PromptToolKit/
├── data/
│ ├── inputs.json
│ └── examples.json
│
├── prompts/
│ ├── system_prompts.json
│ └── templates.json
│
├── src/
│ ├── evaluator.py
│ ├── llm_client.py
│ ├── prompt_builder.py
│ ├── report.py
│ ├── tasks.py
│ └── techniques.py
│
├── output/
│ ├── resultados.csv
│ └── graficos/
│
├── main.py
├── requirements.txt
└── .env.exampleExecuta tarefas sem exemplos prévios.
Executa tarefas utilizando exemplos de entrada e saída.
Força o modelo a raciocinar passo a passo.
Utiliza personas para alterar o comportamento do modelo.
O sistema já possui suporte para:
- Classificação
- Extração de informações
- Geração de texto
- Sumarização
Exemplos:
- Análise de sentimento
- Respostas automáticas
- Extração de JSON
- Resumos acadêmicos
git clone https://github.com/mathsant-js/PromptToolKit.git
cd PromptToolKitpython -m venv venv
source venv/bin/activatepython -m venv venv
venv\Scripts\activatepip install -r requirements.txtO projeto utiliza Ollama para execução de modelos locais.
Site oficial:
https://ollama.com/downloadollama serveExemplo utilizando Qwen:
ollama pull qwen2.5:1.5bVocê também pode utilizar:
- llama3
- mistral
- gemma
- deepseek
- phi3
Crie um arquivo .env na raiz do projeto:
OLLAMA_HOST=http://localhost:11434
MODEL_NAME=qwen2.5:1.5bpython main.pyO sistema irá:
- Carregar tarefas
- Carregar exemplos
- Carregar templates
- Executar todas as técnicas
- Avaliar respostas
- Gerar métricas
- Gerar gráficos
- Executar testes de temperatura
Define todas as tarefas do sistema.
Exemplo:
{
"nome": "classificacao_feedback",
"tipo": "classificacao",
"instrucao": "Classifique o sentimento.",
"template": "classificacao_template"
}Armazena exemplos Few-Shot.
{
"classificacao_feedback": [
{
"input": "A plataforma é excelente.",
"output": "POSITIVO"
}
]
}Define contexto e objetivo das tarefas.
{
"classificacao_template": {
"contexto": "Especialista em sentimentos.",
"objetivo": "Classificar feedbacks."
}
}Após a execução:
output/
├── resultados.csv
└── graficos/
├── acuracia.png
├── custo.png
├── tempo_execucao.png
└── temperatura.png- Acurácia
- Tempo de resposta
- Quantidade de tokens
- Consistência
- Similaridade textual
===================================
TAREFA: classificacao_feedback
===================================
[Zero-Shot]
Resposta: POSITIVO
[Few-Shot]
Resposta: POSITIVO
[Chain-of-Thought]
Resposta: POSITIVO
[Role Prompting]
Resposta: POSITIVOVocê pode facilmente:
- Adicionar novas tarefas
- Criar novas técnicas
- Integrar outros modelos
- Adicionar novas métricas
- Criar novos templates
- Adicionar novos datasets
Qualquer modelo suportado pelo Ollama:
- qwen2.5
- llama3
- mistral
- deepseek
- gemma
- phi3
- codellama
Contribuições são bem-vindas.
- Faça um fork
- Crie uma branch
git checkout -b feature/nova-feature- Commit suas alterações
git commit -m "feat: nova feature"- Faça push
git push origin feature/nova-feature- Abra um Pull Request