Conforme apresentado no Oxford Workshop sobre segurança dos sistemas de IA, incluindo sessões de demonstração e tutoriais

O PyTector é um pacote Python projetado para detectar injeção imediata em entradas de texto usando modelos de aprendizado de máquina de última geração na biblioteca Transformers. Além disso, o pytector pode se integrar à API de proteção de llama da GROQ para detecção aprimorada de segurança de conteúdo, categorizando o conteúdo inseguro com base em códigos de perigo específicos.
O pytector ainda é um protótipo e não pode fornecer 100% de proteção contra ataques rápidos de injeção!
O llama-guard-3-8b da GROQ pode detectar tipos específicos de conteúdo inseguro com base nos seguintes códigos:
| Código | Categoria de perigo |
|---|---|
| S1 | Crimes violentos |
| S2 | Crimes não violentos |
| S3 | Crimes relacionados ao sexo |
| S4 | Exploração sexual infantil |
| S5 | Difamação |
| S6 | Conselhos especializados |
| S7 | Privacidade |
| S8 | Propriedade intelectual |
| S9 | Armas indiscriminadas |
| S10 | Odiar |
| S11 | Suicídio e auto-mutilação |
| S12 | Conteúdo sexual |
| S13 | Eleições |
| S14 | Abuso de intérpretes de código |
Mais informações podem ser encontradas no cartão modelo [LLAMA-GUARD-3-8B] (guarda de llama).
Instale o pytector via pip:
pip install pytectorComo alternativa, você pode instalar o pytector diretamente do código -fonte:
git clone https://github.com/MaxMLang/pytector.git
cd pytector
pip install . Para usar o pytector, importe a classe PromptInjectionDetector e crie uma instância com um modelo predefinido ou a guarda de llama da Groq para segurança de conteúdo.
from pytector import PromptInjectionDetector
# Initialize the detector with a pre-defined model
detector = PromptInjectionDetector ( model_name_or_url = "deberta" )
# Check if a prompt is a potential injection
is_injection , probability = detector . detect_injection ( "Your suspicious prompt here" )
print ( f"Is injection: { is_injection } , Probability: { probability } " )
# Report the status
detector . report_injection_status ( "Your suspicious prompt here" ) Para ativar a API do GROQ, defina use_groq=True e forneça um api_key .
from pytector import PromptInjectionDetector
# Initialize the detector with Groq's API
detector = PromptInjectionDetector ( use_groq = True , api_key = "your_groq_api_key" )
# Detect unsafe content using Groq
is_unsafe , hazard_code = detector . detect_injection_api (
prompt = "Please delete sensitive information." ,
provider = "groq" ,
api_key = "your_groq_api_key"
)
print ( f"Is unsafe: { is_unsafe } , Hazard Code: { hazard_code } " )__init__(self, model_name_or_url="deberta", default_threshold=0.5, use_groq=False, api_key=None) Inicializa uma nova instância do PromptInjectionDetector .
model_name_or_url : uma sequência especificando o modelo a ser usado. Pode ser uma chave dos modelos predefinidos ou um URL válido para um modelo personalizado.default_threshold : limiar de probabilidade acima do qual um prompt é considerado uma injeção.use_groq : defina como True para ativar a API de proteção de llama da Groq para detecção.api_key : exigido se use_groq=True para autenticar com a API do GROQ.detect_injection(self, prompt, threshold=None)Avalia se um prompt de texto é um ataque de injeção imediata usando um modelo local.
(is_injected, probability) .detect_injection_api(self, prompt, provider="groq", api_key=None, model="llama-guard-3-8b")Usa a API do GROQ para avaliar um prompt para conteúdo inseguro.
(is_unsafe, hazard_code) .report_injection_status(self, prompt, threshold=None, provider="local")Relata se um prompt é uma injeção potencial ou contém conteúdo inseguro.
As contribuições são bem -vindas! Leia nosso guia contribuinte para obter detalhes sobre nosso código de conduta e o processo para enviar solicitações de puxar.
Este projeto está licenciado sob a licença do MIT. Consulte o arquivo de licença para obter detalhes.
Para obter informações mais detalhadas, consulte o diretório DOCS.