Neste tutorial, vamos aprender a verificar se um texto contém conteúdo gerado por IA utilizando o Pangram's pangram-sdk Pacote Python.
O pangram-sdk O pacote permite que os programadores utilizem API do Detetor de Conteúdo com IA da Pangram para verificar se pequenos trechos de texto ou documentos mais longos apresentam indícios de que o conteúdo foi gerado por IA.
Neste tutorial, abordaremos a obtenção de uma chave API, a utilização do SDK Python da Pangram e a realização de pedidos HTTP diretamente aos pontos de extremidade da API da Pangram. Consulte a documentação completa da API da Pangram para obter mais informações e exemplos de utilização.
Para começar, vai precisar de uma conta Pangram. Crie uma conta utilizando o endereço de e-mail ao qual pretende associar a sua chave API. Depois de criar a conta, terá duas opções para a configurar: subscrever um plano para programadores ou obter uma chave API de investigador.
O Plano para Desenvolvedores da Pangram tem um preço a partir de 100 $ por mês. Este plano inclui até 2000 créditos de API por mês. Pode contactar-nos para desbloquear a sua conta e ativar a tarifação baseada na utilização. Inscreva-se no Plano para Desenvolvedores para começar. Depois de se inscrever no plano para desenvolvedores, poderá encontrar a sua chave de API na consola de API.
A Pangram também disponibiliza chaves API gratuitamente a investigadores. Se estiver a trabalhar num estudo de investigação não comercial, preencha este formulário para solicitar créditos API gratuitos. Entraremos em contacto consigo diretamente para lhe fornecer uma chave API e a sua atribuição de créditos de investigação.
Assim que tiver a sua chave API, pode adicioná-la ao seu ambiente. Execute o comando seguinte, 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"Certifique-se de que o ambiente Python correto está ativado. Execute o seguinte comando para instalar o SDK Python do Pangram:
pip instalar pangram-sdkSe utilizar uv, pode, em vez disso, utilizar:
uv adicionar pangram-sdkSe utilizar o Poetry, o comando seria:
poesia adicionar pangram-sdkPrimeiro, crie um Pangram Client para efetuar pedidos. O Pangram Client 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 introduzir diretamente uma chave API:
de pangram importar Pangram
minha_chave_API = '' # Preencha isto com a sua chave API.
pangram_client = Pangram(api_key=minha_chave_API)pangram_client's prever A função irá efetuar uma única solicitação à API do Pangram e devolver o resultado. Por predefinição, esta função analisará apenas as primeiras 400 palavras, aproximadamente. Cada solicitação consumirá um crédito.
texto = "A raposa castanha e rápida salta por cima do cão preguiçoso."
resultado = pangram_client.prever(texto)
pontuação = resultado["ai_likelihood"]
representação_textual_da_pontuação = resultado["previsão"]
imprimir(f"Prevemos que o texto {texto} é {representação_textual_da_pontuação}, com uma probabilidade de IA de {pontuação}.") Utilize 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. Cada pedido consumirá um crédito por item do lote. Os resultados devolvidos serão uma matriz com o mesmo formato que a resposta individual 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}.") Utilize o prever_janela_deslizante função para obter uma previsão precisa do uso da IA num documento mais extenso. Esta função divide o texto de entrada em janelas e prevê o uso da IA para cada janela do lote. Esta função utiliza um crédito por cada 1 000 palavras do texto de entrada.
texto = "A raposa castanha e rápida salta por cima do cão preguiçoso."
resultado = pangram_client.predict_sliding_window(texto)
pontuação = resultado["ai_likelihood"]
representação_textual_da_pontuação = resultado["previsão"]
imprimir(f"Prevemos que o texto {texto} é {representação_textual_da_pontuação}, com uma probabilidade de IA de {pontuação}.") O resultado é um dicionário com os seguintes campos:
texto: [string] o texto de entradaprobabilidade: [float] um número entre 0 e 1, em que um valor próximo de 1 indica uma previsão segura de que o texto foi gerado por IAprevisão: [string] uma descrição textual da quantidade de conteúdo gerado por IA que o texto contémprevisão curta: [string] "Humano", "Misto" ou "IA"fraction_ai_content: [float] um valor real 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 individuais para o texto.O painel do Pangram pode apresentar nativamente os resultados de uma consulta de janela deslizante. Utilize a função prever com link para o painel para executar uma consulta com janela deslizante e receber também um link para o painel. Tal como prever_janela_deslizante, esta função é cobrada a 1 crédito por cada 1 000 palavras de texto de entrada.
texto = "A raposa castanha e rápida salta por cima do cão preguiçoso."
resultado = pangram_client.predict_sliding_window(texto)
pontuação = resultado["ai_likelihood"]
representação_textual_da_pontuação = resultado["previsão"]
link_do_painel = resultado["dashboard_link"]
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 {dashboard_link}") O resultado é um dicionário com os mesmos campos que um prever_janela_deslizante resultado, só que contém também um campo adicional:
ligação para o painel: [string] um link para uma página que contém os resultados completos da janela deslizante.Todas estas funções também podem ser acedidas através de HTTP. Para obter a documentação completa sobre como enviar pedidos HTTP à API do Pangram, consulte a documentação da API de Inferência do Pangram.
Por vezes, um pedido enviado ao Pangram pode atingir o tempo limite ou falhar. Para garantir que o seu programa não bloqueia, recomendamos vivamente que inclua tentativas de repetição. Uma biblioteca adequada para esse efeito é a Tenacity, que recomendamos.
Eis um exemplo de como utilizar o Tenacity para repetir chamadas Pangram:
de tenacidade importar retry, stop_after_attempt, espera_aleatória_exponencial, retry_if_exception_type
@retry(
retry=retry_if_exception_type((TimeoutError, ConnectionError)),
stop=parar_após_tentativa(5),
wait=wait_random_exponential(multiplicador=0,5, máx=10),
reraise=True,
)
def prever(texto):
retornar pangram_client.prever(texto)Aqui está um exemplo completo de como utilizar o SDK Pangram para verificar se um texto contém IA e obter um link para o painel de controlo, com tentativas de repetição.
de pangram importar Pangram
de tenacidade import retry, stop_after_attempt, espera_aleatória_exponencial, retry_if_exception_type
chave_API = ""
pangram_client = Pangram(api_key=api_key)
@retry(
retry=retry_if_exception_type((TimeoutError, ConnectionError)),
stop=parar_após_tentativa(5),
wait=wait_random_exponential(multiplicador=0,5, máx=10),
reraise=True,
)
def predict_ai_with_link(texto)
result = pangram_client.predict_sliding_window(texto)
retornar resultado
texto = "A raposa castanha e rápida 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 = resultado["previsão"]
link_do_painel = resultado["dashboard_link"]
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 {dashboard_link}")Esperamos que, com este guia, tenha conseguido utilizar o pacote Python de deteção de IA da Pangram para detetar conteúdo gerado por IA através de programação. Fez alguma coisa interessante com ele? Marque-nos no LinkedIn ou no X e partilhe o que criou!

O Max é um engenheiro experiente na área do aprendizado de máquina. Mais recentemente, trabalhou no setor de veículos autónomos na Nuro, liderando a iniciativa de aprendizado ativo da empresa. Tem um longo historial de implementação de produtos de aprendizado de máquina de sucesso na Google, na Two Sigma e na Yelp.
O Max é licenciado em Ciência da Computação Teórica e mestre em Inteligência Artificial pela Universidade de Stanford. Para além da sua paixão pela construção, é também um membro ativo da comunidade de cubos de Magic: The Gathering.






