Conecta la API de OpenAI a un proyecto en Python para responder preguntas en lenguaje natural usando contexto de noticias. Aplica buenas prácticas como el uso de .env, variables de entorno y una prompt engineering mínima pero efectiva. Además, limita costos con selección de artículos y aprende a imprimir y verificar el contexto que envías a la IA.
¿Cómo proteger la API key con .env y variables de entorno?
Guardar llaves de la API en el código es un riesgo. La solución es .env y python-dotenv, cargando variables de entorno con seguridad y sin subirlas al repositorio.
Usa un archivo .env para llaves y contraseñas.
Instala python-dotenv con v: v add python-dotenv.
Carga variables con load_dotenv y os.environ.get.
Evita exponer la key en el código y en el control de versiones.
Código base:
# Instalaciónvadd python-dotenv
# config.pyfrom dotenv import load_dotenv
import os
load_dotenv()OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY")# print(OPENAI_API_KEY) # Úsalo solo para probar; luego elimínalo.
# .env (ejemplo)OPENAI_API_KEY=tu_llave_secreta
Puntos clave:
variables de entorno con os.environ.get.
No subir API keys al repositorio.
Imprimir solo para probar y luego borrar el print.
¿Cómo instalar la librería de OpenAI y configurar el cliente?
OpenAI ofrece una librería oficial en PyPI. Se integra creando un client y usando un model como GPT-4 (requiere saldo para su uso).
Instala la librería desde PyPI.
Crea un archivo OpenAI.py para centralizar la configuración.
El client toma la key desde el entorno ya cargado.
Usa instructions y input para controlar la respuesta.
# Instalación de la librería oficialvadd openai
# OpenAI.pyfrom openai import OpenAI
client = OpenAI()# Toma la API key desde el entornodefanalyze_news_withIA(articles, query):# Implementación mostrada abajo: construir *prompt* con contexto y consultar la API.pass
Notas:
La librería incluye ejemplos claros de uso.
Si usas v como gestor, puedes prescindir de un archivo de requerimientos y mantener una única fuente de dependencias.
El endpoint de ejemplo utiliza instructions, input y selección de model.
¿Cómo construir el prompt con artículos y hacer la consulta?
La estrategia es pasar a la IA un contexto con títulos y descripciones de artículos, y luego una pregunta concreta. Para controlar costos, limita a los primeros diez artículos y recorta la descripción a cien caracteres.
Extrae título y descripción con una lista por comprensión.
Limita a 10 artículos para reducir costos en el LLM.
Recorta descripciones a 100 caracteres.
Redacta un prompt claro: “Responde de forma concisa en español”.
# Construcción de contexto y promptdefanalyze_news_withIA(articles, query): context ="\n".join([f"- Título: {a['title']}. Descripción: {a['description'][:100]}."for a in articles[:10]]) prompt =("Basándote en estas noticias:\n"f"{context}\n"f"Pregunta: «{query}». Responde de forma concisa en español.")# Ejemplo de uso del *client* con *model*, *instructions* e *input*. response = client.responses.create( model="gpt-4", instructions="eres un agente que lee en contexto y responde brevemente",input=prompt
)# Puede devolver un *stream* o quizás no haya respuesta; maneja ambos casos.return response orNone
¿Cómo integrarlo en el flujo principal?
Importa la función en el archivo principal.
Pasa la lista de artículos y la query.
Imprime la respuesta.
from OpenAI import analyze_news_withIA
articulos =[...]# Lista de artículos ya obtenidos.pregunta ="¿Qué piensas de Python?"respuesta = analyze_news_withIA(articulos, pregunta)print(respuesta)
¿Cómo verificar el contexto enviado?
Imprime el prompt para auditar qué recibe la IA.
Observa la salida. Ejemplo de respuesta: “Python es un lenguaje versátil y popular…”.
# Dentro de analyze_news_withIA, temporalmente:print(prompt)# Útil para depurar qué se está enviando a la IA.
Habilidades y conceptos que practicas: lenguaje natural, API de OpenAI, .env, python-dotenv, variables de entorno, os.environ.get, lista por comprensión, control de costos en LLM, prompt conciso, impresión y pruebas en terminal, integración en main, manejo de posibles None o stream, y mención del modelo GPT-4 que requiere saldo. Próximos pasos sugeridos: programación orientada a objetos y publicación en un repositorio de GitHub aplicando buenas prácticas.
¿Tienes dudas o quieres compartir tu implementación? Comenta qué pregunta harías a la IA con tus noticias y qué mejoras planeas añadir.