Conectar tu proyecto de Python con la API de OpenAI te permite resolver dudas usando lenguaje natural y análisis con IA. Aquí verás cómo generar una llave, protegerla con un archivo .env y construir un prompt con noticias como contexto. Ideal para desarrolladores que ya tienen un proyecto y quieren sumarle inteligencia artificial.
La meta del proyecto de noticias era clara: hacer una pregunta y que la respuesta llegue basada en las noticias que recopilamos. Para lograrlo, el paso final es crear un prompt que use esas noticias como contexto y dejar que un modelo de lenguaje responda.
Cómo protejo mi API key con un archivo .env
Lo primero es entender por qué no debes escribir tu llave directamente en el código. Las llaves, API keys y contraseñas nunca deben subirse a un repositorio, y para eso existe el archivo .env [00:14].
La llave de OpenAI se genera desde su plataforma: le das clic, escribes un nombre y la generas. Cópiala y guárdala en un lugar seguro, porque una vez que le das done no la vuelves a ver [01:14].
Después creas un archivo nuevo llamado .env en la raíz del proyecto y ahí guardas la llave con un nombre de variable. Esto reemplaza la mala práctica de dejar la API key quemada en el config, como se hacía antes en el API client [01:41].
¿Para qué sirve un archivo .env? Guarda datos sensibles como llaves y contraseñas fuera del código fuente. Así evitas subirlos por accidente a tu repositorio de GitHub y mantienes tu proyecto seguro.
Cómo cargo las variables de entorno en Python
Para leer ese archivo dentro de Python necesitas la librería python-dotenv [02:23]. Como el proyecto usa uv para instalar paquetes, basta con ejecutar uv add python-dotenv en la terminal y revisar que aparezca la nueva dependencia.
Después importas load_dotenv en tu config y ejecutas la función. Esa es la que hace toda la magia: agrega todas las variables del archivo como variables de entorno [03:05].
Para acceder a ellas sigues estos pasos:
- Importa el paquete
os.
- Usa
os.environ, que es el diccionario de todas las variables de entorno.
- Aplica
.get() pasando el nombre de la variable que definiste en tu .env.
Con eso reemplazas el valor del API key directamente desde el archivo seguro. Puedes probarlo con un print temporal ejecutando python news_analyzer config: la llave ya no está en el código, pero el proyecto sí la detecta porque la trae desde el .env [04:31]. Luego borras el print, porque solo necesitabas confirmar que funciona.
Cómo instalo y configuro la librería de OpenAI
OpenAI ofrece su propia librería de Python, disponible en PyPI y con muy buena documentación [05:38]. La instalas también con uv agregando la dependencia y confirmando que quedó registrada.
Un detalle importante: como estás usando uv con una sola fuente de datos para las dependencias, el viejo archivo de requirements deja de actualizarse. Por eso lo borras y trabajas con una única fuente donde vivan todas las librerías [06:14].
La documentación muestra que primero debes crear un cliente para usar la API. Al copiar ese ejemplo, recuerda que los imports siempre van arriba y que ya no necesitas repetir el os.environ.get, porque tu proyecto ya carga las variables desde el .env [07:31].
¿Qué es un LLM y por qué genera costos? Un LLM es un modelo de lenguaje grande, como GPT-4. Cada consulta a la API consume recursos, así que debes agregarle saldo a tu cuenta de OpenAI para usarlo.
Cómo construyo un prompt con noticias como contexto
Aquí viene lo interesante. Defines un método llamado analyze_news_with_ia que recibe una lista de artículos y una query o pregunta [08:08]. Este método retorna un string o puede que un None, porque al ser una API quizás no devuelva respuesta.
El modelo se configura, por ejemplo GPT-4, y trabaja con dos piezas: instructions e input. La idea es armar un prompt donde las noticias funcionen como contexto y la pregunta pueda responderse a partir de ellas [08:50].
Para crear ese contexto iteras los artículos con una lista comprimida, pero con límites claros:
- Usas solo el título y la descripción.
- Recortas a cien caracteres por artículo.
- Tomas únicamente los primeros diez artículos.
Esta limitación no es un capricho: usar un LLM incurre en costos, y con diez artículos evitas gastos innecesarios [09:36]. Después de definir el contexto, el prompt es bastante básico: "Basándote en estas noticias, responde esta pregunta de forma concisa en español".
Ese prompt va en el input, en vez del texto del ejemplo de OpenAI. Y en instructions puedes escribir algo como "eres un agente que lee en contexto y responde brevemente" [10:20]. Con eso, tu función ya analiza noticias con IA.
Cómo integro y pruebo la función en el main
Para usarla, la importas en el main y le pasas los artículos que ya tenías, borrando los ejemplos previos [10:44]. La pregunta de prueba fue directa: "¿Qué piensas de Python?".
Como el método devuelve un string o algo vacío, lo envuelves en un print. Al ejecutar python main, el proceso toma su tiempo porque primero consulta las noticias y luego envía todo el contexto a OpenAI [11:36].
La respuesta fue clara: Python es un lenguaje versátil y popular usado en inteligencia artificial, desarrollo web y ciencia de datos. Si además imprimes el prompt, ves exactamente qué recibió la IA: todas las noticias, la pregunta y la instrucción de responder de forma concisa en español [12:14].
Con esto construiste una aplicación de noticias con análisis de IA desde cero. Los próximos pasos que recomienda Luis Martínez, con catorce años construyendo software, son aprender programación orientada a objetos y aplicar las buenas prácticas del curso en proyectos personales que puedas compartir en GitHub.
¿Ya probaste conectar tu proyecto con la API de OpenAI? Cuéntame en los comentarios qué pregunta le hiciste a tu modelo.