¡Anunciamos una nueva colaboración con Proofig! Más información

Cómo detectar IA en Python

Max Spero
11 de agosto de 2025

En este tutorial, aprenderemos a comprobar si un texto contiene contenido generado por IA utilizando Pangram's. pangram-sdk Paquete Python.

El pangram-sdk El paquete permite a los desarrolladores utilizar API del detector de contenido generado por IA de Pangram para comprobar fragmentos cortos de texto o documentos más largos en busca de indicios de que el contenido haya sido generado por IA.

En este tutorial, trataremos cómo obtener una clave API, utilizar el SDK de Python de Pangram y realizar solicitudes HTTP directamente a los puntos finales de la API de Pangram. Consulte la documentación completa de la API de Pangram para obtener más información y ejemplos de uso.

Configuración

Para empezar, necesitarás una cuenta de Pangram. Crea una cuenta utilizando el correo electrónico al que deseas que se asigne tu clave API. Una vez que hayas creado una cuenta, tendrás dos opciones para configurarla: registrarte en un plan para desarrolladores u obtener una clave API para investigadores.

El plan para desarrolladores de Pangram tiene un precio inicial de 100 $ al mes. El plan incluye hasta 2000 créditos API al mes. Puede ponerse en contacto con nosotros para desbloquear su cuenta y habilitar los precios basados en el uso. Regístrese en el plan para desarrolladores para empezar. Una vez que se haya registrado en el plan para desarrolladores, podrá encontrar su clave API en la consola API.

Pangram también proporciona claves API gratuitas a los investigadores. Si está trabajando en un estudio de investigación no comercial, rellene este formulario para solicitar créditos API gratuitos. Le responderemos directamente con una clave API y su asignación de créditos para investigación.

Configuración del entorno

Una vez que tengas tu clave API, puedes añadirla a tu entorno. Ejecuta el siguiente comando, sustituyendo la clave API de ejemplo por tu clave API personal. También puedes añadir este comando a tu .bashrc, .zshrc, .env, etc., para configurar automáticamente el PANGRAM_API_KEY variable.

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

Descargar el SDK de Python

Asegúrate de tener habilitado el entorno Python correcto. Ejecuta el siguiente comando para instalar el SDK de Python de Pangram:

pip instalar pangram-sdk

Si utiliza uv, puede utilizar en su lugar:

uv añadir pangram-sdk

Si utilizas Poetry, el comando sería:

poesía añadir pangram-sdk

Utiliza el SDK de Python.

Crear un cliente Pangram

En primer lugar, cree un cliente Pangram para realizar solicitudes. El cliente Pangram leerá automáticamente su clave API a partir de sus variables de entorno.

de pangram import Pangram
pangram_client = Pangram()

También puede pasar una clave API directamente:

de pangram import Pangram

mi_clave_api = ''  # Rellene este campo con su clave API.
pangram_client = Pangram(api_key=my_api_key)

Realizar una solicitud estándar

pangram_clientede predecir La función realizará una única solicitud a la API de Pangram y devolverá el resultado. Por defecto, solo se tendrán en cuenta aproximadamente las primeras 400 palabras. Cada solicitud consumirá un crédito.

texto = «El rápido zorro marrón salta sobre el perro perezoso».
resultado = pangram_client.predict(texto)
puntuación = resultado[«ai_likelihood»]
representación_textual_de_la_puntuación = resultado[«predicción»]
imprimir(f"Predecimos que el texto {texto} es {representación_textual_de_la_puntuación}, con una probabilidad de IA de {puntuación}».) 

Realizar una solicitud por lotes

Utilice el predecir_lote Función para enviar un lote de consultas a la vez, para un procesamiento más rápido de grandes conjuntos de datos. Cada solicitud consumirá un crédito por cada elemento del lote. Los resultados devueltos serán una matriz con el mismo formato que la consulta individual. predecir función.

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}.") 

Realizar una solicitud de ventana deslizante

Utilice el predecir_ventana_deslizante función para obtener una predicción precisa del uso de IA en un documento más extenso. Esta función dividirá el texto introducido en ventanas y predecirá la IA para cada ventana del lote. Esta función utiliza un crédito por cada 1000 palabras del texto introducido.

texto = «El rápido zorro marrón salta sobre el perro perezoso».
resultado = pangram_client.predict_sliding_window(texto)
puntuación = resultado[«ai_likelihood»]
representación_textual_de_la_puntuación = resultado[«predicción»]
imprimir(f"Predecimos que el texto {texto} es {representación_textual_de_la_puntuación}, con una probabilidad de IA de {puntuación}».) 

El resultado es un dict con los siguientes campos:

  • texto: [cadena] el texto introducido
  • probabilidad_ai: [float] un número entre 0 y 1, donde un valor cercano a 1 indica una predicción segura de que el texto es IA.
  • predicción: [cadena] una descripción textual de la cantidad de contenido de IA que contiene el texto.
  • predicción_corta: [cadena] «Humano», «Mixto» o «IA»
  • fracción_ai_contenido: [float] un número flotante entre 0 y 1, donde 1 indica que la IA está presente en todo el texto.
  • ventanas: [lista] una lista de resultados de predicción únicos para el texto.

Obtenga un enlace al panel de control de Pangram con los resultados.

El panel de control de Pangram puede mostrar de forma nativa los resultados de una solicitud de ventana deslizante. Utilice la función predecir_con_enlace_al_panel_de_control para ejecutar una consulta de ventana deslizante y también recibir un enlace al panel de control. Al igual que predecir_ventana_deslizanteEsta función se factura a 1 crédito por cada 1000 palabras del texto introducido.

texto = «El rápido zorro marrón salta sobre el perro perezoso».
resultado = pangram_client.predict_sliding_window(texto)
puntuación = resultado[«ai_likelihood»]
representación_textual_de_la_puntuación = resultado[«predicción»]
enlace_panel_de_control = resultado["dashboard_link"]
imprimir(f"Predecimos que el texto {texto} es {representación_textual_de_la_puntuación}, con una probabilidad de IA de {puntuación}. Puede ver los resultados completos en {dashboard_link}») 

El resultado es un dict con los mismos campos que un predecir_ventana_deslizante resultado, excepto que también contiene un campo adicional:

  • enlace_del_panel_de_control: [cadena] un enlace a una página que contiene los resultados completos de la ventana deslizante.

Métodos alternativos: solicitudes HTTP

También se puede acceder a todas estas funciones a través de HTTP. Para obtener documentación completa sobre cómo enviar solicitudes HTTP a la API de Pangram, consulte la documentación de la API de inferencia de Pangram.

Añadir reintentos

En ocasiones, una solicitud a Pangram puede agotarse o fallar. Para garantizar que su programa no se bloquee, le recomendamos encarecidamente que añada reintentos. Una biblioteca de este tipo es Tenacity, que le recomendamos.

Aquí hay un ejemplo del uso de Tenacity para reintentar llamadas Pangram:

desde tenacidad importación reintento, detener_después_del_intento, esperar_aleatorio_exponencial, reintentar_si_tipo_excepción

@retry(
    retry=retry_if_exception_type((Error de tiempo de espera, Error de conexión)),
    detener=detener_después_del_intento(5),
    esperar=espera_aleatoria_exponencial(multiplicador=0,5, máx=10),
    re-subida=Verdadero,
)
def predict(texto):
    devolver pangram_client.predict(texto)

Poniendo todo junto

Aquí tienes un ejemplo completo del uso del SDK de Pangram para comprobar cualquier texto en busca de IA y obtener un enlace al panel de control, con reintentos.

de pangram import Pangram
de tenacidad importar retry, detener_después_del_intento, esperar_aleatorio_exponencial, reintentar_si_tipo_excepción

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

@retry(
    retry=retry_if_exception_type((Error de tiempo de espera, Error de conexión)),
    detener=detener_después_del_intento(5),
    esperar=espera_aleatoria_exponencial(multiplicador=0,5, máx=10),
    re-subida=Verdadero,
)
def predict_ai_with_link(texto)
    result = pangram_client.predict_sliding_window(texto)
    return resultado

texto = «El rápido zorro marrón salta sobre el perro perezoso».
resultado = predict_ai_with_link(texto)
puntuación = resultado[«ai_likelihood»]
representación_textual_de_la_puntuación = resultado[«predicción»]
enlace_panel_de_control = resultado["dashboard_link"]
imprimir(f"Predecimos que el texto {texto} es {representación_textual_de_la_puntuación}, con una probabilidad de IA de {puntuación}. Puede ver los resultados completos en {dashboard_link}»)

Cierre

Esperamos que con esta guía hayas podido utilizar el paquete Python de detección de IA de Pangram para detectar contenido generado por IA mediante programación. ¿Has creado algo interesante con él? ¡Etiquétanos en LinkedIn o X y comparte lo que has creado!

Suscríbase a nuestro boletín informativo
Compartimos actualizaciones mensuales sobre nuestra investigación en detección de IA.