Configuración inicial del proyecto Platy News con Python
Resumen
Domina un flujo real de desarrollo en Python con Platy News, una aplicación de línea de comandos capaz de buscar noticias con APIs y procesarlas con IA. Aprenderás a clonar el repositorio de GitHub, crear entornos virtuales, instalar en modo editable, configurar API keys en .env y ejecutar el comando platynews para obtener resultados con un LLM. Ideal para practicar programación orientada a objetos, typing en Python 3.13, unit testing y conceptos de rendimiento en código legacy.
¿Qué es Platy News y qué lograrás con Python?
Platy News es una CLI que integra varias fuentes de información para buscar noticias y complementarlas con análisis de IA. Reúne conocimientos desde variables y ciclos hasta entornos virtuales, POO, typing y AsyncIO, guiándote hacia un trabajo más profesional y colaborativo.
Aplicación de línea de comandos con comandos intuitivos en la terminal.
Búsqueda de noticias con múltiples fuentes: News API, The Guardian y OpenAI.
Análisis con IA integrado mediante un LLM.
Python 3.13 como requisito por el uso de typing avanzado.
Trabajo en equipo y mejora de un código legacy.
Pruebas unitarias con carpeta test para validar el proyecto.
¿Cómo clonar e instalar el proyecto paso a paso?
El proyecto se distribuye en un repositorio con readme que irás mejorando. La estructura incluye paquetes, módulos y la carpeta test con pruebas unitarias. Usarás Visual Studio Code para explorar el código y la terminal para ejecutar comandos.
¿Qué estructura tiene el repositorio y qué herramientas usarás?
README inicial que documenta requisitos y uso.
Paquetes y módulos organizados por funcionalidad.
test con pruebas unitarias para validar el comportamiento.
Visual Studio Code para editar y ejecutar.
Terminal para comandos del flujo de instalación.
¿Qué comandos ejecutar en la terminal?
Clonación con git clone usando el enlace SSH y apertura en VS Code.
Creación del entorno virtual con el comando indicado y activación según tu sistema.
vvm
# luego activar con el comando que muestre vvm.
Instalación en modo editable para habilitar el comando platynews.
vpip install -e
Verificación rápida del comando (mostrará errores si faltan claves).
platynews
¿Cómo configurar API keys y ejecutar comandos con IA?
La configuración se hace con un archivo .env en la raíz del proyecto. Debes crear el archivo y pegar las API keys siguiendo el readme. Sin estas claves, platynews mostrará errores al iniciar.
¿Dónde crear y pegar las API keys en .env?
Crea el archivo .env según lo indicado en el readme.
Genera y copia la clave de News API desde tu cuenta y pégala en .env.
En OpenAI crea una nueva clave secreta y verifica que tienes saldo activo.
Regístrate en The Guardian como desarrollador, confirma el correo y copia la clave recibida a .env.
Guarda el archivo y vuelve a ejecutar platynews.
¿Cómo probar una consulta con guardian y LLM?
Abre el readme y toma un ejemplo de uso con un tema como “cambio climático”.
Ejecuta el comando para preguntar por las “principales causas” usando el source guardian.
Espera unos segundos para ver la lista de temas procesados por el LLM.
Si aparece la ayuda de uso en vez de errores, las API keys están bien configuradas.
Buenas prácticas:
Verifica el entorno virtual activo antes de instalar o ejecutar.
Mantén el readme actualizado con cada cambio.
Revisa la carpeta test para entender los unit tests del proyecto.
¿Listo para avanzar? Comenta si ya ejecutaste tu primera búsqueda y si el análisis de IA respondió lo que esperabas.
En mi caso no tengo acceso la oportunidad de cargar saldo a openAI, entonces usaré una apikey de gemini que si tiene algunas consultas gratuitas y me permitió ejecutar la clase.
Dejo mi repositorio en github donde se puede ver el cambio, básicamente dentro del ambiente primero es necesario instalar la libreria de google que reemplazará a la de openai, en consola (con el ambiente activo) ejecutar uv pip install google-genai, luego modificar el archivo analyzer.py en base al código del repositorio personal que puedes consultar en uv pip install google-genai NicolasDuqueA123/platzi-news: Desarrollo del curso de arquitectura proyectos python.
Seguí los pasos de la clase como la desarrolló el profesor, lo único diferente es que tenia el archivo analyzer.py con los cambios del repositorio y en el archivo .env en lugar de una apikey de openai use una gemini que ya tenia creada, al final se logré realizar la consulta como el profesor exitosamente pero usando gemini como llm.
Otro tema relevante es que no modifique los nombres de las clases o funciones, solo los comentarios, esto para evitar dañar otros archivos del repositorio.
Si quieres usar la version gratuita que ofrece google con gemini flash 2.5 que estará hasta jun 2026 puede usar este repositorio
... simplemente modifique algunas variables a lo largo del repositorio compartido en este capitulo y actualize el .toml con las librerías de google que estoy usando... (por cierto no soy un experto solo le pedi ayuda a gemini 3 asi que si tienes feedback es mas que bien venido)
El archivo mas afectado fue
python-platzi-news-main/src/platzi_news/analysis/analyzer.py
también cambie la temperatura y la cantidad de artículos que hacen fetch y la cantidad de token usada como respuesta que era de 500... si quieres sabeer mas de esto hay unos whitepappers que google comparte muy completos sobre estos parametros y puedes encontrar los notebooks en kaggle...
volviendo al tema por ultimo quiero compartir las imagenes del comando colordiff entre el analyzer.py del profe y analyzer.py "modificado con gemini" por cierto obvio te invito a que descargues el repositorio y uses los comandos de la clase para hacer el set up del .venv
Por ultimo te dejo una imagen para que veas el motivo de por que le baje la temperatura pues entre mas temperatura mas creatividad pero mayor alucinación
Por si alguno tiene una vesion de python pero tambien necesita otra para estre proyecto, dejo este articulo que me sirvio con ello: ,Switch%20between%20the%20installed%20versions
Hola Rosell. El módulo .env (y las variables de entorno en general) funciona como una caja fuerte para tu proyecto.
Su propósito principal es almacenar información sensible o configuraciones que cambian según el entorno (como claves de API, contraseñas de bases de datos o tokens de acceso) fuera de tu código fuente.
Seguridad: Evitas subir credenciales reales a repositorios públicos (como GitHub).
Flexibilidad: Permite que tu aplicación se comporte distinto en desarrollo, pruebas o producción sin modificar una sola línea de código.
Imagina que es un archivo de "configuración personalizada" que tu programa lee al arrancar para saber qué llaves usar, manteniendo tus secretos lejos de miradas indiscretas.