Procesamiento de Documentos PDF con Python: Extrae y Analiza Texto con DeepSeek, OpenAI y OpenRouter

En este artículo, exploraremos cómo utilizar Python para extraer texto de documentos PDF y analizarlo utilizando modelos avanzados de procesamiento del lenguaje natural (NLP) como los ofrecidos por DeepSeek , OpenAI y OpenRouter . Aprenderás a automatizar la extracción de datos desde archivos PDF y a integrarlos con APIs de inteligencia artificial para obtener análisis detallados.
Los documentos PDF son ampliamente utilizados en diversas industrias debido a su formato estándar y capacidad para preservar el diseño de los documentos. Sin embargo, cuando se trata de extraer información útil de estos archivos, el proceso puede volverse tedioso si se realiza manualmente. Con Python, podemos automatizar esta tarea utilizando bibliotecas como PyPDF2
, y luego aprovechar APIs de IA para analizar el contenido extraído.
Requisitos Previos
Antes de comenzar, asegúrate de tener instaladas las siguientes dependencias:
pip install PyPDF2 requests
Además, necesitarás claves de API válidas para los servicios que desees utilizar (DeepSeek, OpenAI o OpenRouter). Estas claves te permitirán acceder a modelos avanzados de NLP.
Paso 1: Extracción de Texto de un PDF
La biblioteca PyPDF2
es una herramienta poderosa para trabajar con archivos PDF en Python. A continuación, definimos una función para extraer texto de un archivo PDF:
import PyPDF2
def extract_text_from_pdf(pdf_path):
"""
Extrae el texto de un archivo PDF.
:param pdf_path: Ruta al archivo PDF.
:return: Texto extraído del PDF.
"""
with open(pdf_path, 'rb') as file:
reader = PyPDF2.PdfReader(file) # Abre el PDF y crea un objeto lector
text = ''
# Iterar sobre cada página del PDF y extraer el texto
for page in reader.pages:
text += page.extract_text() # Extrae el texto de cada página
return text
Ejemplo de Uso
pdf_path = "documento.pdf" # Cambia esto por la ruta de tu archivo PDF
try:
text = extract_text_from_pdf(pdf_path)
print("Texto extraído correctamente.")
except Exception as e:
print(f"Error al extraer texto del PDF: {e}")
Paso 2: Envío del Texto a la API de DeepSeek
Una vez que hemos extraído el texto, podemos enviarlo a una API de IA para su análisis. En este ejemplo, utilizaremos la API de DeepSeek . Primero, definimos una función para interactuar con la API:
import requests
def query_deepseek_api(text, api_key):
"""
Envía el texto extraído a la API de DeepSeek para procesarlo.
:param text: Texto extraído del PDF.
:param api_key: Tu clave de API de DeepSeek.
:return: Respuesta de la API de DeepSeek.
"""
url = "https://api.deepseek.com/chat/completions" # Revisa la URL correcta en la documentación de DeepSeek
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
data = {
"model": "MODELO", # Revisa el modelo correcto en la documentación
"messages": [
{"role": "user", "content": f"Dame un análisis: {text}"}
]
}
# Enviar la solicitud POST a la API de DeepSeek
response = requests.post(url, headers=headers, json=data)
return response.json()
Ejemplo de Uso
if __name__ == "__main__":
pdf_path = "documento.pdf" # Cambia esto por la ruta de tu archivo PDF
api_key = "TU_CLAVE_API" # Cambia esto por tu clave de API de DeepSeek
# Extraer texto del PDF
print("Extrayendo texto del PDF...")
try:
text = extract_text_from_pdf(pdf_path)
print("Texto extraído correctamente.")
except Exception as e:
print(f"Error al extraer texto del PDF: {e}")
exit()
# Enviar texto a la API de DeepSeek
print("Enviando texto a la API de DeepSeek...")
try:
response = query_deepseek_api(text, api_key)
print("Respuesta de la API de DeepSeek:")
print(response) # Muestra la respuesta completa de la API
except Exception as e:
print(f"Error al enviar texto a la API de DeepSeek: {e}")
Integración con Otras APIs
El mismo enfoque puede aplicarse para interactuar con otras APIs, como OpenAI o OpenRouter . Solo necesitas ajustar la URL y los parámetros específicos de cada servicio. Por ejemplo, para OpenAI:
def query_openai_api(text, api_key):
url = "https://api.openai.com/v1/chat/completions"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
data = {
"model": "gpt-3.5-turbo",
"messages": [
{"role": "user", "content": f"Dame un análisis: {text}"}
]
}
response = requests.post(url, headers=headers, json=data)
return response.json()
Implementación Completa
A continuación, mostramos cómo integrar ambas funciones para extraer el texto de un PDF y enviarlo a la API de DeepSeek.
import PyPDF2
import requests
# Función para extraer texto de un archivo PDF
def extract_text_from_pdf(pdf_path):
"""
Extrae el texto de un archivo PDF.
:param pdf_path: Ruta al archivo PDF.
:return: Texto extraído del PDF.
"""
with open(pdf_path, 'rb') as file:
reader = PyPDF2.PdfReader(file) # Abre el PDF y crea un objeto lector
text = ''
# Iterar sobre cada página del PDF y extraer el texto
for page in reader.pages:
text += page.extract_text() # Extrae el texto de cada página
return text
# Función para enviar texto a la API de DeepSeek
def query_deepseek_api(text, api_key):
"""
Envía el texto extraído a la API de DeepSeek para procesarlo.
:param text: Texto extraído del PDF.
:param api_key: Tu clave de API de DeepSeek.
:return: Respuesta de la API de DeepSeek.
"""
url = "https://api.deepseek.com/chat/completions" # Revisa la URL correcta en la documentación de DeepSeek
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
data = {
"model": "MODELO", # Revisa el modelo correcto en la documentación
"messages": [
{"role": "user", "content": f"Dame un analisis: {text}"}
]
}
# Enviar la solicitud POST a la API de DeepSeek
response = requests.post(url, headers=headers, json=data)
return response.json()
# Ejemplo de uso
if __name__ == "__main__":
# Configuración
pdf_path = "documento.pdf" # Cambia esto por la ruta de tu archivo PDF
api_key = "TU_CLAVE_API" # Cambia esto por tu clave de API de DeepSeek
# Extraer texto del PDF
print("Extrayendo texto del PDF...")
try:
text = extract_text_from_pdf(pdf_path)
print("Texto extraído correctamente.")
except Exception as e:
print(f"Error al extraer texto del PDF: {e}")
exit()
# Enviar texto a la API de DeepSeek
print("Enviando texto a la API de DeepSeek...")
try:
response = query_deepseek_api(text, api_key)
print("Respuesta de la API de DeepSeek:")
print(response) # Muestra la respuesta completa de la API
except Exception as e:
print(f"Error al enviar texto a la API de DeepSeek: {e}")
El procesamiento de documentos PDF con Python ofrece una forma eficiente de automatizar la extracción de información y su análisis utilizando modelos avanzados de NLP. Al combinar herramientas como PyPDF2
con APIs de IA como DeepSeek, OpenAI y OpenRouter, puedes transformar grandes volúmenes de datos no estructurados en conocimientos útiles.
Este enfoque puede aplicarse en diversos escenarios, como análisis de contratos, generación de resúmenes automáticos, extracción de datos financieros y más. ¡Explora las posibilidades y adapta estas herramientas a tus necesidades específicas!
Nota: Asegúrate de manejar adecuadamente las claves de API y seguir las políticas de uso de los servicios mencionados. Además, ten en cuenta que algunos servicios pueden tener costos asociados según el volumen de solicitudes.