Skip to content

mathsant-js/PromptToolKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PromptToolKit

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.

Overview

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

Funcionalidades

  • 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


Tecnologias Utilizadas

  • Python 3.11+
  • Pandas
  • Matplotlib
  • Ollama Python SDK
  • python-dotenv


Estrutura do Projeto

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.example


Técnicas de Prompting

Zero-Shot

Executa tarefas sem exemplos prévios.

Few-Shot

Executa tarefas utilizando exemplos de entrada e saída.

Chain-of-Thought

Força o modelo a raciocinar passo a passo.

Role Prompting

Utiliza personas para alterar o comportamento do modelo.



Tipos de Tarefas

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


Instalação

1. Clonar o Repositório

git clone https://github.com/mathsant-js/PromptToolKit.git

cd PromptToolKit

2. Criar Ambiente Virtual

Linux / Mac

python -m venv venv

source venv/bin/activate

Windows

python -m venv venv

venv\Scripts\activate

3. Instalar Dependências

pip install -r requirements.txt


Instalação do Ollama

O projeto utiliza Ollama para execução de modelos locais.

Instalar Ollama

Site oficial:

https://ollama.com/download

Iniciar o Ollama

ollama serve

Baixar um Modelo

Exemplo utilizando Qwen:

ollama pull qwen2.5:1.5b

Você também pode utilizar:

  • llama3
  • mistral
  • gemma
  • deepseek
  • phi3


Configuração

Criar arquivo .env

Crie um arquivo .env na raiz do projeto:

OLLAMA_HOST=http://localhost:11434

MODEL_NAME=qwen2.5:1.5b


Como Executar

Executar o Projeto

python main.py

Fluxo da Execução

O sistema irá:

  1. Carregar tarefas
  2. Carregar exemplos
  3. Carregar templates
  4. Executar todas as técnicas
  5. Avaliar respostas
  6. Gerar métricas
  7. Gerar gráficos
  8. Executar testes de temperatura


Arquivos de Configuração

tasks.py

Define todas as tarefas do sistema.

Exemplo:

{
    "nome": "classificacao_feedback",
    "tipo": "classificacao",
    "instrucao": "Classifique o sentimento.",
    "template": "classificacao_template"
}

examples.json

Armazena exemplos Few-Shot.

{
  "classificacao_feedback": [
    {
      "input": "A plataforma é excelente.",
      "output": "POSITIVO"
    }
  ]
}

templates.json

Define contexto e objetivo das tarefas.

{
  "classificacao_template": {
    "contexto": "Especialista em sentimentos.",
    "objetivo": "Classificar feedbacks."
  }
}


Relatórios Gerados

Após a execução:

output/
├── resultados.csv
└── graficos/
    ├── acuracia.png
    ├── custo.png
    ├── tempo_execucao.png
    └── temperatura.png


Métricas Avaliadas

  • Acurácia
  • Tempo de resposta
  • Quantidade de tokens
  • Consistência
  • Similaridade textual


Exemplo de Execução

===================================
TAREFA: classificacao_feedback
===================================

[Zero-Shot]
Resposta: POSITIVO

[Few-Shot]
Resposta: POSITIVO

[Chain-of-Thought]
Resposta: POSITIVO

[Role Prompting]
Resposta: POSITIVO


Personalização

Você pode facilmente:

  • Adicionar novas tarefas
  • Criar novas técnicas
  • Integrar outros modelos
  • Adicionar novas métricas
  • Criar novos templates
  • Adicionar novos datasets


Modelos Compatíveis

Qualquer modelo suportado pelo Ollama:

  • qwen2.5
  • llama3
  • mistral
  • deepseek
  • gemma
  • phi3
  • codellama


Contribuição

Contribuições são bem-vindas.

Como contribuir

  1. Faça um fork
  2. Crie uma branch
git checkout -b feature/nova-feature
  1. Commit suas alterações
git commit -m "feat: nova feature"
  1. Faça push
git push origin feature/nova-feature
  1. Abra um Pull Request


Licença

MIT License



About

Prompt ToolKit para o modelo de domínio de uma faculdade EAD

Topics

Resources

License

Stars

Watchers

Forks

Contributors

Languages