Anunciamos uma nova parceria com a Proofig! Saiba mais

Como detectar IA em Python

Max Spero
11 de agosto de 2025

Neste tutorial, aprenderemos como verificar se um texto contém conteúdo de IA usando o Pangram's. pangram-sdk Pacote Python.

O pangram-sdk O pacote permite que os programadores utilizem API do Detector de Conteúdo de IA da Pangram para verificar pequenos trechos de texto ou documentos mais longos, em busca de sinais de que o conteúdo foi gerado por IA.

Neste tutorial, abordaremos a obtenção de uma chave API, o uso do SDK Python da Pangram e a realização de solicitações HTTP diretamente para os pontos finais da API da Pangram. Consulte a documentação completa da API da Pangram para obter mais informações e exemplos de uso.

Configuração

Para começar, precisará de uma conta Pangram. Crie uma conta usando o e-mail ao qual deseja que a sua chave API seja associada. Depois de criar uma conta, terá duas opções para configurá-la: inscrever-se num plano para desenvolvedores ou obter uma chave API para pesquisadores.

O Plano para Desenvolvedores da Pangram custa a partir de US$ 100 por mês. O plano inclui até 2.000 créditos de API por mês. Você pode entrar em contato conosco para desbloquear a sua conta e ativar o preço baseado no uso. Inscreva-se no Plano para Desenvolvedores para começar. Depois de se inscrever no plano para desenvolvedores, você poderá encontrar a sua chave de API no console de API.

A Pangram também fornece chaves API gratuitamente para pesquisadores. Se estiver a trabalhar num estudo de pesquisa não comercial, preencha este formulário para solicitar créditos API gratuitos. Responderemos diretamente com uma chave API e a sua alocação de créditos de pesquisa.

Configuração do ambiente

Depois de obter a sua chave API, pode adicioná-la ao seu ambiente. Execute o seguinte comando, substituindo a chave API de exemplo pela sua chave API pessoal. Também pode adicionar este comando ao seu .bashrc, .zshrc, .env, etc. para definir automaticamente o PANGRAM_API_KEY variável.

exportar PANGRAM_API_KEY="12345678-1234-abcd-0123-123456789abc"

Descarregue o SDK Python

Certifique-se de que tem o ambiente Python correto ativado. Execute o seguinte comando para instalar o SDK Python do Pangram:

pip instalar pangram-sdk

Se utilizar uv, pode utilizar em vez disso:

uv adicionar pangram-sdk

Se utilizar o Poetry, o comando seria:

poesia adicionar pangram-sdk

Use o SDK Python

Criar um cliente Pangram

Primeiro, crie um Cliente Pangram para fazer solicitações. O Cliente Pangram irá ler automaticamente a sua chave API a partir das suas variáveis de ambiente.

de pangram importar Pangram
pangram_client = Pangram()

Também pode passar uma chave API diretamente:

de pangram importar Pangram

minha_chave_api = ''  # Preencha com a sua chave API.
pangram_client = Pangram(api_key=minha_chave_api)

Faça um pedido padrão

cliente_pangramde prever A função fará uma única solicitação à API do Pangram e retornará o resultado. Por padrão, ela analisará apenas as primeiras 400 palavras, aproximadamente. Uma solicitação consumirá um crédito.

texto = «A rápida raposa castanha salta por cima do cão preguiçoso.»
resultado = pangram_client.prever(texto)
pontuação = resultado["ai_likelihood"]
representação_textual_da_pontuação = result[«prediction»]
imprimir(f"Prevemos que o texto {texto} é {representação_textual_da_pontuação}, com uma probabilidade de IA de {pontuação}.") 

Fazer um pedido em lote

Use o prever_lote função para enviar um lote de consultas de uma só vez, para um processamento mais rápido de grandes conjuntos de dados. Uma solicitação utilizará um crédito por item no lote. Os resultados retornados serão uma matriz do mesmo formato que o único prever função.

text_batch = ["text1", "text2"]

results = pangram_client.batch_predict(text_batch)
for result in results:
    text = result["text"]
    score = result["ai_likelihood"]
    text_representation_of_score = result["prediction"]
    print(f"We predict that the text {text} is {text_representation_of_score}, with an AI likelihood of {score}.") 

Faça uma solicitação de janela deslizante

Use o prever_janela_deslizante função para obter uma previsão precisa do uso de IA em um documento mais longo. Essa função dividirá o texto de entrada em janelas e preverá a IA para cada janela no lote. Essa função usa um crédito por cada 1.000 palavras no texto de entrada.

texto = «A rápida raposa castanha salta por cima do cão preguiçoso.»
resultado = pangram_client.prever_janela_deslizante(texto)
score = resultado["ai_likelihood"]
representação_textual_da_pontuação = result[«prediction»]
imprimir(f"Prevemos que o texto {texto} é {representação_textual_da_pontuação}, com uma probabilidade de IA de {pontuação}.") 

O resultado é um ditado com os seguintes campos:

  • texto: [string] o texto introduzido
  • ai_probabilidade: [float] um número entre 0 e 1, em que um valor próximo de 1 indica uma previsão confiável de que o texto é AI
  • previsão: [string] uma descrição textual da quantidade de conteúdo de IA que o texto contém
  • previsão_curta: [string] «Humano», «Misto» ou «IA»
  • fração_ai_conteúdo: [float] um valor flutuante entre 0 e 1, em que 1 indica que a IA está presente em todo o texto.
  • janelas: [lista] uma lista de resultados de previsão única para o texto.

Obtenha um link para o painel do Pangram com os resultados

O painel do Pangram pode exibir nativamente os resultados de uma solicitação de janela deslizante. Use a função prever_com_link_do_painel para executar uma consulta de janela deslizante e também receber um link para o painel. Assim como prever_janela_deslizante, esta função é cobrada a 1 crédito por cada 1.000 palavras do texto introduzido.

texto = «A rápida raposa castanha salta por cima do cão preguiçoso.»
resultado = pangram_client.prever_janela_deslizante(texto)
score = resultado["ai_likelihood"]
representação_textual_da_pontuação = result[«prediction»]
link_do_painel = result["link_do_painel"]
imprimir(f"Prevemos que o texto {texto} é {representação_textual_da_pontuação}, com uma probabilidade de IA de {pontuação}. Pode ver os resultados completos em {link_do_painel}") 

O resultado é um ditado com os mesmos campos que um prever_janela_deslizante resultado, exceto que também contém um campo adicional:

  • link do painel: [string] um link para uma página que contém os resultados completos da janela deslizante.

Métodos alternativos: solicitações HTTP

Todas essas funções também podem ser acessadas via HTTP. Para obter a documentação completa sobre como enviar solicitações HTTP para a API Pangram, consulte a documentação da API de inferência da Pangram.

Adicionar novas tentativas

Ocasionalmente, uma solicitação ao Pangram pode expirar ou falhar. Para garantir que o seu programa não trave, recomendamos fortemente adicionar novas tentativas. Uma biblioteca que recomendamos é a Tenacity.

Aqui está um exemplo de como usar o Tenacity para tentar novamente chamadas Pangram:

de tenacidade importação nova tentativa, parar_após_tentativa, esperar_aleatório_exponencial, retry_if_exception_type

@retry(
    retry=retry_if_exception_type((Erro de tempo limite, Erro de conexão)),
    stop=parar_após_tentativa(5),
    esperar=esperar_aleatório_exponencial(multiplicador=0,5, máx=10),
    reraise=Verdadeiro,
)
def prever(texto):
    retornar pangram_client.predict(texto)

Juntando tudo

Aqui está um exemplo completo de como usar o SDK Pangram para verificar qualquer texto para IA e obter um link para o painel, com novas tentativas.

de pangram importar Pangram
de tenacity importar retry, parar_após_tentativa, esperar_aleatório_exponencial, retry_if_exception_type

chave_api = ""
pangram_client = Pangram(api_key=api_key)

@retry(
    retry=retry_if_exception_type((Erro de tempo limite, Erro de conexão)),
    stop=parar_após_tentativa(5),
    esperar=esperar_aleatório_exponencial(multiplicador=0,5, máx=10),
    reraise=Verdadeiro,
)
def predict_ai_with_link(texto)
    result = pangram_client.prever_janela_deslizante(texto)
    retorno result

texto = «A rápida raposa castanha salta por cima do cão preguiçoso.»
resultado = predict_ai_with_link(texto)
pontuação = resultado["ai_likelihood"]
representação_textual_da_pontuação = result[«prediction»]
link_do_painel = resultado["link_do_painel"]
imprimir(f"Prevemos que o texto {texto} é {representação_textual_da_pontuação}, com uma probabilidade de IA de {pontuação}. Pode ver os resultados completos em {link_do_painel}")

Encerramento

Esperamos que, com este guia, tenha conseguido usar o pacote Python de deteção de IA da Pangram para detetar conteúdo de IA programaticamente. Fez algo interessante com ele? Marque-nos no LinkedIn ou no X e partilhe o que criou!

Inscreva-se na nossa newsletter
Partilhamos atualizações mensais sobre a nossa investigação em deteção de IA.