En este tutorial, aprenderemos a detectar si un texto contiene contenido generado por IA utilizando Pangram's pangram-sdk Paquete de Python.
El pangram-sdk El paquete permite a los desarrolladores utilizar API de detección de contenido de Pangram para comprobar si fragmentos breves de texto o documentos más extensos presentan indicios de que el contenido ha sido generado por IA.
En este tutorial, veremos cómo obtener una clave API, cómo utilizar el SDK de Python de Pangram y cómo realizar solicitudes HTTP directamente a los puntos finales de la API de Pangram. Para obtener más información y ver ejemplos de uso, consulta la documentación completa de la API de Pangram.
Para empezar, necesitarás una cuenta de Pangram. Crea una cuenta utilizando la dirección de correo electrónico a la que quieras vincular tu clave API. Una vez creada la cuenta, tendrás dos opciones para configurarla: suscribirte a un plan para desarrolladores u obtener una clave API de investigador.
El Plan para desarrolladores de Pangram tiene un precio a partir de 100 $ al mes. El plan incluye hasta 2000 créditos de API al mes. Puedes ponerte en contacto con nosotros para activar tu cuenta y habilitar la tarificación por uso. Regístrate en el Plan para desarrolladores para empezar. Una vez te hayas registrado en el Plan para desarrolladores, podrás encontrar tu clave de API en la consola de API.
Pangram también ofrece claves API de forma gratuita a los investigadores. Si estás trabajando en un estudio de investigación sin ánimo de lucro, rellena este formulario para solicitar créditos API gratuitos. Te responderemos directamente con una clave API y la asignación de créditos para tu investigación.
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"Asegúrate de que tienes activado el entorno de Python adecuado. Ejecuta el siguiente comando para instalar el SDK de Python de Pangram:
pip instalar pangram-sdkSi utilizas «uv», puedes usar en su lugar:
UV añadir pangram-sdkSi utilizas Poetry, el comando sería:
poesía añadir pangram-sdkEn primer lugar, crea un cliente Pangram para realizar solicitudes. El cliente Pangram leerá automáticamente tu clave API a partir de tus variables de entorno.
de pangram importar Pangram
pangram_client = Pangram()También puedes introducir una clave API directamente:
de pangram importar Pangram
mi_clave_api = '' # Rellena esto con tu clave API.
pangram_client = Pangram(api_key=mi_clave_API)pangram_client's 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 las primeras 400 palabras, aproximadamente. Cada solicitud consumirá un crédito.
texto = "El rápido zorro marrón salta sobre el perro perezoso."
resultado = pangram_client.predecir(texto)
puntuación = resultado["probabilidad_ia"]
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}.") Utiliza el predict_batch función para enviar un lote de consultas a la vez, lo que permite 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}.") Utiliza el predicción_ventana_deslizante función para obtener una predicción precisa del uso de la IA en un documento más extenso. Esta función dividirá el texto de entrada en ventanas y predecirá el uso de la IA para cada ventana del lote. Esta función consume un crédito por cada 1 000 palabras del texto de entrada.
texto = "El rápido zorro marrón salta sobre el perro perezoso."
resultado = pangram_client.predict_sliding_window(texto)
puntuación = resultado["probabilidad_ia"]
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 diccionario con los siguientes campos:
texto: [cadena] el texto de entradaprobabilidad de IA: [float] un número entre 0 y 1, en el que un valor cercano a 1 indica una predicción segura de que el texto ha sido generado por IApredicción: [cadena] una descripción textual de la cantidad de contenido generado por IA que contiene el textopredicción breve: [cadena] «Humano», «Mestizo» o «IA»fracción_ai_contenido: [float] un valor flotante comprendido entre 0 y 1, donde 1 indica que la IA está presente en todo el texto.ventanas: [lista] una lista de resultados de predicciones individuales para el texto.El panel de control de Pangram puede mostrar de forma nativa los resultados de una consulta de ventana deslizante. Utiliza la función predecir_con_enlace_al_panel_de_control para ejecutar una consulta de ventana deslizante y recibir también un enlace al panel de control. Al igual que predicción_ventana_deslizante, esta función se factura a 1 crédito por cada 1.000 palabras de texto de entrada.
texto = "El rápido zorro marrón salta sobre el perro perezoso."
resultado = pangram_client.predict_sliding_window(texto)
puntuación = resultado["probabilidad_ia"]
representación_textual_de_la_puntuación = resultado["predicción"]
enlace_al_panel = resultado["enlace_al_panel"]
imprimir(f"Predecimos que el texto {texto} es {representación_textual_de_la_puntuación}, con una probabilidad de IA de {puntuación}. Puedes ver los resultados completos en {dashboard_link}") El resultado es un diccionario con los mismos campos que un predicción_ventana_deslizante resultado, salvo que también contiene un campo adicional:
enlace al panel de control: [cadena] un enlace a una página que contiene los resultados completos del análisis con ventana deslizante.También se puede acceder a todas estas funciones a través de HTTP. Para obtener la documentación completa sobre cómo enviar solicitudes HTTP a la API de Pangram, consulta la documentación de la API de inferencia de Pangram.
En ocasiones, una solicitud enviada a Pangram puede agotar el tiempo de espera o fallar. Para garantizar que tu programa no se bloquee, te recomendamos encarecidamente que incorpores mecanismos de reintento. Una biblioteca que cumple esta función es Tenacity, que te recomendamos.
A continuación se muestra un ejemplo del uso de Tenacity para reintentar las llamadas a Pangram:
de tenacidad importar retry, stop_after_attempt, espera_aleatoria_exponencial, retry_if_exception_type
@retry(
retry=retry_if_exception_type((TimeoutError, ConnectionError)),
detener=detener_después_del_intento(5),
esperar=espera_aleatoria_exponencial(multiplicador=0,5, máx=10),
relevar=True,
)
def predecir(texto):
devuelve pangram_client.predecir(texto)A continuación se muestra un ejemplo completo del uso del SDK de Pangram para analizar cualquier texto en busca de contenido generado por IA y obtener un enlace al panel de control, con reintentos.
de pangram importar Pangram
de tenacidad import retry, stop_after_attempt, espera_aleatoria_exponencial, retry_if_exception_type
api_key = ""
pangram_client = Pangram(api_key=api_key)
@retry(
retry=reintentar_si_tipo_de_excepción((TimeoutError, ConnectionError)),
detener=detener_después_del_intento(5),
esperar=espera_aleatoria_exponencial(multiplicador=0,5, máx=10),
relevar=True,
)
def predecir_ia_con_enlace(texto)
resultado = pangram_client.predict_sliding_window(texto)
devuelve resultado
texto = "El rápido zorro marrón salta sobre el perro perezoso."
resultado = predict_ai_with_link(texto)
puntuación = resultado["probabilidad_ia"]
representación_textual_de_la_puntuación = resultado["predicción"]
enlace_al_panel = resultado["enlace_al_panel"]
imprimir(f"Predecimos que el texto {texto} es {representación_textual_de_la_puntuación}, con una probabilidad de IA de {puntuación}. Puedes ver los resultados completos en {dashboard_link}")Esperamos que, gracias a esta guía, hayas podido utilizar el paquete de Python «AI Detection» 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!

Max es un ingeniero con amplia experiencia en aprendizaje automático. Recientemente ha trabajado en el ámbito de los vehículos autónomos en Nuro, donde ha dirigido el proyecto de aprendizaje activo. Cuenta con una dilatada trayectoria en la implementación de productos de aprendizaje automático de éxito en Google, Two Sigma y Yelp.
Max es licenciado en Informática Teórica y tiene un máster en Inteligencia Artificial por la Universidad de Stanford. Además de su pasión por la construcción, también es un miembro activo de la comunidad del «cubo» de Magic: The Gathering.






