Como testar o GPT-6 Astra sem expor código sensível da empresa

Dá pra testar o GPT-6 Astra sem entregar código proprietário: em vez de colar arquivo do repositório privado, você monta um recorte que reproduz o problema técnico com módulo público, nomes anonimizados e dados fictícios de mesmo formato. Antes do primeiro prompt, decida o canal: contas ChatGPT Business, Enterprise, Edu e a plataforma de API ficam fora do treino por padrão, Free e Plus não. No ChatGPT dá pra desligar ‘Improve the model for everyone’ e usar Temporary Chat; na API dá pra enviar store: false. E se a política interna proíbe qualquer envio, existem caminhos formais como ZDR e residência de dados 🙂
Todo mundo quer avaliar o modelo novo, e quase ninguém quer explicar depois por que um trecho do repositório privado foi parar num chat
O GPT-6 Astra é o modelo de topo da linha da OpenAI, posicionado para engenharia de software, uso de computador, ciência e trabalho profissional
Ele chegou em preview limitado no dia 03/09/2026, e no dia seguinte veio a liberação a pagantes, numa versão restrita que recusa certos prompts, como os de cibersegurança
Sam Altman classificou o rollout como "messy": o acesso inicial ficou com organizações do programa Daybreak, enquanto assinantes Plus, Pro, Business, Enterprise e devs da API esperavam liberação incremental
E é exatamente nesse clima de fila e ansiedade que o pessoal faz a besteira clássica, que é jogar o arquivo real do trabalho no prompt "só pra ver como ele se sai"
Bora montar um jeito melhor de fazer isso?
Antes de começar: o que você precisa ter decidido
Recorte bom começa antes do código
Se você abrir a janela do chat e só depois pensar no que pode ou não sair da empresa, já perdeu
Tem três decisões que precisam estar fechadas:
- Qual canal você vai usar: ChatGPT ou API, e em qual tipo de conta
- Se existe política escrita na sua organização sobre envio de código para serviço externo (e quem assina essa política)
- Qual pergunta técnica o teste responde, em uma frase só (‘ele refatora esse padrão de repositório sem quebrar contrato?’ é pergunta, ‘ele é bom?’ não é)
Formação Claude Code
Domine Claude Code do absoluto zero até o avançado
- 120 aulas
- 4 projetos
- 9h 48min
O que é verificável sobre treino por padrão:
Esse é o ponto que mais gera confusão, então vale a tabela
| Canal | Dados usados para treinar modelo por padrão |
|---|---|
| ChatGPT Free e Plus | Sim, compartilhamento ligado por padrão |
| ChatGPT Business, Enterprise e Edu | Não |
| Plataforma de API | Não |
Na API, por padrão, a OpenAI não usa entradas e saídas para treinar ou melhorar modelos, salvo opt-in explícito da organização
Isso não significa que nada é guardado: as entradas e saídas da API ficam retidas por até 30 dias para monitoramento de abuso, e depois são apagadas, salvo obrigação legal de retenção maior
São coisas diferentes, e confundir as duas é o começo de uma conversa ruim com o time de segurança
E se a empresa já tem contrato com a Microsoft?
O GPT-6 Astra também está listado no catálogo do Microsoft Azure AI Foundry, com condições de acesso e cota próprias
Se o contrato de nuvem da sua empresa já mora lá, esse pode ser o caminho de menor atrito burocrático, porque a discussão de fornecedor já foi vencida antes de você chegar
Passo a passo: montando um recorte de teste que representa o projeto real
A ideia central: você não quer mandar o seu código, você quer mandar o seu problema
São coisas separadas, e a maior parte das pessoas nunca parou pra reparar nisso
É como pedir opinião de um arquiteto sobre um vão livre: tu não precisa mandar a planta com o endereço, o nome do cliente e o orçamento, tu manda o vão
- Escolha o alvo do teste: o problema técnico, não o arquivo
Escreva em uma linha o que você quer avaliar
Exemplo: "ele consegue extrair uma regra de negócio espalhada em três métodos e transformar em uma classe de política, mantendo a assinatura pública?"
Repare que essa frase não tem nada de proprietário dentro dela
Erro comum deste passo: escolher o arquivo mais crítico do sistema como alvo, porque "é o que importa". O que importa é o padrão do código, e padrão se reproduz
- Parta de um módulo público ou open source com forma parecida
Se o seu sistema usa um padrão de repositório com cache e retry, procure um projeto open source que faça isso e use ele como esqueleto
Você muda o que precisa pra ficar parecido com o seu caso, e o resultado é um código que ninguém pode reclamar que saiu de dentro de casa
Erro comum deste passo: pegar o módulo público e ir colando pedaços do código real dentro dele até "ficar igual". Aí não é mais recorte, é o original com um disfarce ruim
- Anonimize domínio, entidades e regras de negócio
Aqui é troca de nome com método, não busca e substitui no susto
# ANTES (não envie isso)
class CalculadoraComissaoMagazineParceiro:
"""Regra fechada com a Distribuidora Silva em jan/2025.
Contato: [email protected]
"""
TAXA_PARCEIRO_OURO = 0.073
def calcular(self, pedido):
if pedido.cnpj_parceiro in CNPJS_ISENTOS:
return 0
return pedido.total * self.TAXA_PARCEIRO_OURO
# DEPOIS (recorte enviável)
class CalculadoraComissaoParceiro:
"""Comissao por faixa de parceiro, com lista de isencao."""
TAXA_FAIXA_A = 0.10
def calcular(self, pedido):
if pedido.id_parceiro in IDS_ISENTOS:
return 0
return pedido.total * self.TAXA_FAIXA_A
Repare que a forma do problema continua idêntica: condicional de isenção, taxa por faixa, retorno cedo
O que sumiu foi o cliente, o e-mail, a data do contrato e a taxa real
Erro comum deste passo: renomear a classe e esquecer o comentário, a docstring e o nome da variável de teste. O nome do cliente quase sempre sobrevive no comentário, porque ninguém lê comentário 😅
- Substitua dados reais por exemplos equivalentes
Mesmo formato, mesmo volume, conteúdo fictício
Se o bug só aparece com CPF inválido e string de 300 caracteres, o seu exemplo precisa ter CPF inválido e string de 300 caracteres, só que inventados
{
"id_parceiro": "PARC-000119",
"documento": "000.000.000-00",
"total": 1499.90,
"itens": 37,
"observacao": "texto longo de exemplo repetido ate bater o tamanho real do campo"
}

VPS Hostinger para seu sistema
10% OFF extraVPS com SSD NVMe e backups semanais. O cupom MATHEUSHORADECODAR é aplicado automaticamente pelo link.
Ver planos com 10% OFF →Erro comum deste passo: trocar por dados "bonitinhos" (3 itens, total 100.00) e perder justamente a condição que causa o comportamento que você queria avaliar
- Remova segredos, tokens, endpoints internos e caminhos de infraestrutura
Chave de API, string de conexão, host interno, nome de bucket, caminho absoluto de máquina, nome de repositório privado
Tudo isso vai embora, e no lugar entra placeholder
# ANTES
DATABASE_URL=postgres://svc_faturamento:[email protected]:5432/faturamento
# DEPOIS
DATABASE_URL=postgres://usuario:senha@localhost:5432/app_exemplo
Erro comum deste passo: limpar o .env e mandar junto o stack trace, que carrega caminho absoluto, nome de host e nome do repo interno em cada linha
- Valide que o recorte ainda reproduz o comportamento
Rode o recorte
Se o teste que falhava no projeto real não falha no recorte, o recorte não serve, e qualquer conclusão que você tirar dele vai ser sobre outro programa
pytest recorte/ -q
Erro comum deste passo: validar "no olho", sem rodar nada, e passar a tarde discutindo uma resposta do modelo sobre um código que nem compila
Ajustes de privacidade no ChatGPT e na API antes do primeiro prompt
Antes do primeiro envio, mexa nas configurações
E presta atenção numa coisa que confunde muita gente: caminho de menu do ChatGPT é do ChatGPT, não vale como configuração de API
São dois produtos, com dois lugares diferentes pra ajustar
No ChatGPT:
- Vá em
Settings > Data Controlse desligue ‘Improve the model for everyone’
As novas conversas continuam aparecendo no seu histórico, elas só deixam de ser usadas para treinar
- Para um teste pontual, abra um novo chat e clique no botão ‘Temporary’, no canto superior direito
O Temporary Chat não aparece no histórico, não gera memórias e fica fora do treino independentemente daquele ajuste de ‘Improve the model for everyone’, com retenção de 30 dias por segurança
Erro comum deste passo: achar que Temporary significa "não existe em lugar nenhum". Existe, por 30 dias, por segurança
Na API:
- Saiba que na Responses API o parâmetro
storevem comotruepor padrão, e o objeto fica guardado por 30 dias
- Envie
store: falsena requisição para desativar esse armazenamento
curl https://api.openai.com/v1/responses \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-astra",
"store": false,
"input": "Refatore o modulo abaixo mantendo a assinatura publica..."
}'
Erro comum deste passo: configurar store: false no script de teste bonito e esquecer do notebook improvisado que alguém do time rodou na quinta à noite
- Se a exigência do seu time for não guardar nada em hipótese nenhuma, o caminho é o Zero Data Retention (ZDR)
ZDR não é um botão que você liga sozinho: precisa de aprovação e habilitação pelo time de contas da OpenAI, no nível da organização ou do projeto
Com ZDR ativo, o parâmetro store é sempre tratado como false em /v1/responses e /v1/chat/completions
Mais abaixo eu abro esse caminho com calma, porque ele mexe com elegibilidade de recurso e muda o desenho da arquitetura
Três recortes prontos para os testes mais comuns
Método sem exemplo vira teoria, então bora aplicar 😀
Recorte 1: avaliar refatoração de módulo legado
Entra: duas ou três classes com o padrão real de acoplamento, os nomes já anonimizados, os testes que definem o contrato público
Fica de fora: integrações internas, cliente HTTP apontando pra host da empresa, qualquer configuração de ambiente
Fidelidade: mantenha o tamanho dos métodos e o nível de aninhamento. Refatoração é sobre bagunça, e recorte limpo demais responde uma pergunta que você não fez
Recorte 2: avaliar geração de testes para uma regra de negócio
Entra: a função da regra, com as faixas e condições preservadas em estrutura, mas com valores fictícios, mais um teste existente pra servir de estilo
Fica de fora: a tabela real de faixas, os nomes dos clientes das exceções, o histórico de mudança da regra
Fidelidade: preserve a quantidade de ramos. Se a regra real tem sete condições, o recorte com duas não mede nada
Recorte 3: avaliar leitura de um schema de banco
Entra: o DDL com nomes de tabela e coluna genéricos, os tipos, as chaves e os índices
Fica de fora: dados de linha, nomes de schema internos, comentários com nome de sistema legado, credenciais em qualquer forma
CREATE TABLE parceiro (
id BIGSERIAL PRIMARY KEY,
codigo VARCHAR(16) NOT NULL UNIQUE,
faixa VARCHAR(8) NOT NULL,
criado_em TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX idx_parceiro_faixa ON parceiro (faixa);
O limite prático que você precisa saber antes de escolher o caso de uso:
Tem um tipo de teste que simplesmente não vai acontecer aqui
O Astra é o primeiro modelo da OpenAI classificado como nível Critical em capacidade de cibersegurança, e por isso a versão pública vem com guardrails: ela recusa tarefas afiadas e não escreve exploits de prova de conceito

Crie sistemas com IA para vender
Prompts, modelos e checklists para criar e publicar seu sistema com IA e preparar a oferta para o primeiro cliente.
Quero o e-book gratuito Receba o livro e os bônus no seu e-mail.Ou seja: teste de segurança ofensiva não é o caso de uso pra esperar dessa versão, e insistir só vai te render recusa
E vale a régua de sempre com qualquer saída que vier: antes de mandar pro repositório, validar a resposta do modelo continua sendo trabalho seu, não dele
Quando a política interna proíbe qualquer envio: o que ainda dá para fazer
Às vezes não é frescura do time de segurança, é contrato com cliente
E aí "nada sai daqui" é regra, não sugestão
Existem caminhos formais:
- Peça a habilitação de Zero Data Retention (ZDR) ao time de contas da OpenAI
ZDR não é um botão self-service: precisa de aprovação e habilitação pelo time de contas, no nível da organização ou do projeto
Com ZDR ativo, o parâmetro store é sempre tratado como false em /v1/responses e /v1/chat/completions
- Confira a elegibilidade antes de prometer ZDR pro seu jurídico
Nem todo recurso da plataforma entra: Chat Completions e Responses são elegíveis com limitações, enquanto Conversations, ChatKit threads, Assistants, Threads, Vector Stores, Files, Evals e Batches não são elegíveis
Erro comum deste passo: fechar o desenho da arquitetura com Vector Stores e Files no meio, e descobrir a inelegibilidade depois que o projeto já foi aprovado
- Habilite residência de dados criando um novo Project
No dashboard da plataforma, crie um novo Project e selecione a região
Os projetos europeus elegíveis usam o endpoint eu.api.openai.com
A residência de dados está disponível para Europa (incluindo EEE e Suíça), Reino Unido, Estados Unidos, Canadá, Japão, Coreia do Sul, Singapura, Índia, Austrália e Emirados Árabes Unidos
Erro comum deste passo: tentar mudar a região de um projeto que já existe. A região se escolhe na criação do Project novo
- Use o contrato de nuvem que a empresa já tem
Se o caminho da OpenAI direto trava na burocracia, o GPT-6 Astra também aparece no catálogo do Microsoft Azure AI Foundry, com condições de acesso e cota próprias
- Aceite a saída realista: avalie só em corpus público
Se nada disso destravar, avalie o modelo em código open source com forma parecida com a do seu sistema, documente o resultado e leve isso como evidência pra conversa interna
É menos do que você queria, e é muito mais do que zero
Um detalhe que ajuda nessa conversa com jurídico: a ordem judicial ampla que obrigava a OpenAI a preservar todos os logs do ChatGPT foi encerrada pela juíza Ona T. Wang em 9 de outubro, daí em diante
Mas seguem valendo obrigações pontuais, como a entrega de 20 milhões de logs anonimizados no caso de copyright e a retenção de contas sinalizadas pelo New York Times
Se alguém do time levantou esse ponto ano passado, o cenário mudou, e vale reabrir a discussão com o dado atual
Erros que estragam o recorte (e como prevenir)
Sintoma: o modelo acerta no recorte e erra feio no projeto real
Causa: o recorte perdeu justamente a complexidade que importava (o aninhamento, os sete ramos da regra, o estado compartilhado)
Como prevenir: antes de enviar, rode o teste que reproduz o problema no recorte. Se ele passa de primeira, o recorte está fácil demais e você vai medir a coisa errada
Sintoma: identificador de cliente vazou no log de exemplo
Causa: o código foi anonimizado com carinho e o log colado junto não passou por revisão nenhuma
Como prevenir: trate log de exemplo como código: ele entra no mesmo processo de limpeza, com dado fictício de mesmo formato
Sintoma: stack trace com caminho absoluto e nome de repositório interno
Causa: o traceback foi copiado direto do terminal, e ele carrega estrutura de pastas, usuário da máquina e nome do repo em cada linha
Como prevenir: reescreva os caminhos antes de colar
# ANTES
File "/home/mbatt/work/empresa-core-faturamento/src/billing/policy.py", line 214
# DEPOIS
File "app/billing/policy.py", line 214
Sintoma: o teste rodou numa conta pessoal Free ou Plus
Causa: ninguém checou o canal, alguém abriu a conta que já estava logada no navegador e tocou o teste
Como prevenir: nas contas Free e Plus o compartilhamento para treino vem ligado por padrão, então defina o canal ANTES e escreva isso no combinado do time
As duas prevenções que valem por todas:
- Revise o recorte com
git diffantes de enviar, lendo linha por linha, incluindo comentários e docstrings - Padronize um arquivo de exemplo fictício reutilizável no repositório de testes do time, pra ninguém precisar inventar dado falso com pressa às seis da tarde
Dado falso inventado com pressa é como o pessoal acaba mandando o CPF de verdade de algum colega, e isso é bem pior que não testar 🙃
Vídeo: montando fluxos de trabalho com agentes de IA
Pra começar do zero com organização de trabalho usando IA em projeto real, esse vídeo do canal mostra a montagem de um fluxo inteiro com agentes:
Conclusão: teste o modelo, não exponha o repositório
Recorte bem montado responde exatamente a mesma pergunta técnica do arquivo original, com uma fração do risco
E repara que a escolha de canal pesa tanto quanto o conteúdo do prompt: o mesmo texto enviado numa conta Free e numa organização de API com store: false tem destinos diferentes
Tem também o argumento chato, que é o custo: na API, o GPT-6 Astra sai por US$ 10 por milhão de tokens de entrada e US$ 50 por milhão de tokens de saída
Recorte curto é mais seguro e mais barato ao mesmo tempo, o que é raro na vida de dev 😀
Próximo passo: monte um recorte padrão do seu time, deixe ele versionado, e alinhe por escrito com quem cuida de segurança ANTES do primeiro envio
Combinado por escrito é o que separa um teste técnico de um problema de compliance…
até o próximo post!
Perguntas frequentes
Dá pra testar o GPT-6 Astra pelo ChatGPT Free ou Plus sem risco de vazar código da empresa?
Não é o ideal, porque nessas contas o compartilhamento de dados para treinar o modelo vem ligado por padrão. Se o teste precisa acontecer num plano Free ou Plus, use sempre o Temporary Chat ou desligue o treino nas configurações antes de colar qualquer recorte. Contas Business, Enterprise e Edu já ficam fora do treino por padrão, o que reduz esse risco de saída.
Como desligo o treino de modelo no ChatGPT antes de rodar o teste?
Vai em Settings, depois Data Controls, e desliga a opção ‘Improve the model for everyone’. As conversas seguem aparecendo no seu histórico, só não entram mais no treino. É um ajuste rápido e vale fazer antes de qualquer teste com recorte de código, mesmo anonimizado.
O Temporary Chat do ChatGPT é seguro pra testar o GPT-6 Astra com um recorte de código?
Ele ajuda bastante: o chat some do histórico, não gera memória e fica fora do treino independente do ajuste ‘Improve the model for everyone’. Ainda assim, a conversa fica retida por 30 dias por motivo de segurança, então Temporary Chat não substitui a anonimização do recorte. As duas coisas trabalham juntas, uma não anula a outra.
Na API, dá pra evitar que o teste com o GPT-6 Astra fique armazenado?
Dá. Na Responses API o parâmetro store vem como true por padrão e guarda o objeto por 30 dias, mas enviar store: false na requisição desativa esse armazenamento. Isso é diferente de treino de modelo: por padrão a API já não usa entradas e saídas para treinar, salvo opt-in explícito da organização.
O que é Zero Data Retention e como habilitar pra testar o GPT-6 Astra na API?
Zero Data Retention (ZDR) é um opt-in que precisa de aprovação e habilitação pelo time de contas da OpenAI, no nível da organização ou do projeto, não é um botão que você liga sozinho. Com ZDR ativo, o parâmetro store fica sempre como false em /v1/responses e /v1/chat/completions. Vale lembrar que nem todo recurso é elegível: Conversations, Assistants, Threads, Vector Stores, Files, Evals e Batches ficam de fora.
Por que o GPT-6 Astra recusa alguns prompts durante o teste?
Porque a versão pública liberada aos pagantes é uma versão restrita, com guardrails: ela recusa tarefas afiadas e não escreve exploits de prova de conceito. Na prática, prompt de cibersegurança é o caso mais comum de recusa. Se o seu teste esbarrar nisso, é sinal de que o recorte chegou perto demais de um caso sensível, não um bug do modelo.
Formações
Formação Vibe Coding
Do Prompt ao Produto: Crie Software Real com IA
- 474 aulas
- 20 projetos
- 39h 30min
Blog | Mais populares
GPT-6 Astra ou Gemini: qual modelo usar para código no dia a dia?
GPT-6 Astra ou Gemini: qual escolher para código no dia a dia? Compare preço, limite de saída e casos de uso e veja o veredito sem enrolação.
Como usar o GPT-6 Astra para entender um repositório legado que ninguém documentou
O GPT-6 Astra promete entender repositórios legados sem documentação. Veja o passo a passo com 1 milhão de tokens de contexto e como validar cada resposta.
Streaming ou resposta completa no GPT-6 Astra: qual escolher na sua aplicação?
Streaming GPT-6 Astra ou resposta completa? Veja quando cada modo faz sentido, como funciona o modo background e por que o preço por token não muda.
