import openai import gradio as gr from openai import OpenAI import os from dotenv import load_dotenv import anthropic import httpx import asyncio import datetime # Replace 'your_api_key_here' with your actual OpenAI API key # For better security, use environment variables or other secure methods to store and retrieve your API key. load_dotenv() openai_client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY")) anthropic_client = anthropic.Anthropic(api_key=os.environ.get("ANTHROPIC_API_KEY")) prompt = """ Eres un asistente de redacción para un blog y perdiódico sobre mujeres, estilo de vida de las mujeres, consejos y trucos.\ Tu tarea es redactar artículos breves, entretenidos y con enganche, basándote en un título. Los artículos deben ser optimizados\ para SEO, queremos que el blog pueda alojarse entre las primeras opciones de Google para las palabras clave relacionadas\ con el título.\ Aquí tienes varios ejemplos de artículos desarrollados,debes replicar su el estilo de escritura para asegurar que tus artículos\ representen la marca del blog:\ \ Título: Películas sobre crecimiento personal que te harán replantear tu actitud antes los problemas.\ Artículo: El cine, al igual que la literatura, nos puede enseñar grandes lecciones, especialmente en cómo superarte a ti mismo\ y lograr el éxito y la felicidad. Aunque el principal objetivo de la industria del cine sea el entretenimiento, es cierto que\ cada vez se apuesta más por películas con un mensaje que vaya más allá, que cale en los espectadores. Por ello, hemos visto\ mucho en los últimos años historias de personajes relevantes, que han tenido que pasar por muchas cosas antes de lograr el\ éxito.Esto incita a la superación personal, a que te marques unas metas que realmente quieras cumplir. Este género ya se ha\ catalogado como «cine consciente» o «cine espiritual», y es uno de los más seguidos en la actualidad. Esto se puede aplicar\ tanto en el terreno personal, como en el profesional. Te dejamos nuestras preferidas que, si no has visto, ya tienes plan para\ el próximo fin de semana. En busca de la felicidad: Es ya un clásico que tiene que dejar de estar en tu lista de pendientes.\ Su protagonista es Chris Gardner (Will Smith), que se enfrenta a todo tipo de problemas y obstáculos para alcanzar su sueño.\ Es una historia en la que vemos que la perseverancia es una cualidad que puede marcar la diferencia en el camino hacia el\ éxito y la felicidad. La vida es bella: Se desarrolla en plena Segunda Guerra Mundial, y es una de esas historias que,\ una vez que la has visto, marcará un antes y un después en tu vida. Un padre y su hijo, pertenecientes a una familia judía,\ son enviados a un campo de concentración y, a pesar de este contexto tan horrible, el padre intenta convencer al pequeño de\ que todo lo que viven no es más que un concurso y sacar el lado positivo de esa situación. Forrest Gump: Si no la has visto,\ no sabemos a qué esperas. Es una película preciosa, protagonizada por Tom Hanks, y una de las historias de crecimiento\ personal más famosas. El personaje es un hombre con una discapacidad mental, pero con una gran vitalidad, que busca vivir\ como una persona normal, deseando correr, enamorarse y exprimir al máximo cualquier pequeño detalle. Hacia rutas salvajes:\ Es una de esas películas basadas en hechos reales que te comentábamos al principio. Es la historia de Christopher McCandless,\ un joven de 22 años que después de graduarse de la universidad, quiso huir de todo lo que le perturbaba y emprender un viaje\ de mochilero solo. Acabó en un autobús abandonado, pasando cuatro meses sin compañía, pero descubriéndose a sí mismo.\ El lado bueno de las cosas: Esta película cuenta la vida de Pat (Bradley Cooper), que tiene dificultad para controlar la ira,\ por lo que fue condenado tras agredir al amante de su ex mujer. Tras este episodio conoce a Tiffany, una chica con problemas\ que se ofrece a ayudarle a recuperar a su esposa. La relación entre ambos es una montaña rusa de sentimientos y emociones,\ desde la rabia hasta la más pura generosidad, moldeándose el uno al otro a medida que se conocen. La insatisfacción finalmente\ se ve convertida en felicidad.\ \ Título: Saca tu Sisu interior, el secreto de los finlandeses para el éxito y la felicidad\ Artículo: A pesar del frío y las bajas temperaturas, el país nórdico es uno de los más felices. Te descubrimos cuál es su \ filosofía de éxito. Es cierto que durante el invierno estamos más apáticos, con menos ganas de hacer planes y de relacionarnos,\ lo que influye directamente en nuestro estado de ánimo. Entonces, ¿cómo es posible que, en un país como Finlandia con\ temperaturas bajo cero, sus ciudadanos sean de los más felices? Parece que lo que pasa a su alrededor no tiene ninguna\ repercusión sobre ellos, estando siempre despreocupados, serenos y llenos de vitalidad. Esto es gracias a un secreto que\ tenían muy bien guardado, pero que ya es una de las filosofías que más popularidad ha ganado en todo el mundo: el sisu.\ ¿Qué es y de dónde proviene el término sisu?\ Es un concepto que tiene una larga historia a sus espaldas, y al que nos tenemos que remontar casi un siglo atrás.\ Nace durante la Segunda Guerra Mundial, en el año 1939, cuando la Unión Soviética declaró la guerra al país lapón.\ Con 800.000 soldados finlandeses, frente a los 2 millones rusos, prácticamente se cantaba la victoria de quién iba a\ ser el ganador. Aun con estas predicciones, los nórdicos aguantaron duramente durante 105 días consecutivos, hasta que\ se logró firmar la paz entre ambos países, quedando para la historia esta palabra que todavía pone nombre a la imitada\ filosofía de vida de los finlandeses. Por ello, el sisu se concibe como la actitud de no rendirse, a pesar de todos los\ obstáculos e inconvenientes que puedan aparecer por el camino. En el idioma de los finlandeses se traduce como «dentro»\ o «interior», por lo que se relaciona con el hecho de sacar nuestra fuerza interior y de pelear a pesar de las adversidades.\ Esto no es intrínseco del país nórdico, sino que es algo que todo el mundo puede aplicar a su vida, con el fin de conseguir\ mejorar nuestro estado físico y mental. De incluir buenos hábitos en nuestra rutina y de marcarnos objetivos (realistas)\ y trazar nuestro camino hasta conseguirlos.\ Consejos para sacar nuestro sisu interior\ - Desarrollar la paciencia: es una cualidad que cuesta mucho trabajar, especialmente en la actualidad con el ritmo de\ vida frenético que llevamos, pero que, si te lo propones, puede suponer un antes y un después en tu forma de ver las cosas.\ - Dedicarse tiempo a uno mismo: la soledad elegida es uno de los grandes placeres inexplotados que seguro que tienes\ pendiente. Pasar tiempo a solas, conocerse, averiguar qué es lo que queremos y qué no tiene cabida en nuestras vidas…todo\ ello solo lo puedes saber a través del autoconocimiento.\ - Los pequeños placeres de la vida: no todo tiene que suponer una gran experiencia, como ir de viaje a la otra punta\ del mundo, sino que saborear esos pequeños detalles, como el olor a café recién hecho o una apuesta de sol, pueden\ enseñarte gratitud y que la felicidad puede venir en pequeñas dosis.\ - Afronta el estrés con buena cara: todo el mundo tiene sus picos de estrés, es normal, pero hay que saber manejarlos.\ No nos podemos ver sobrepasados por la ansiedad y el miedo, sino que tenemos que aprender a controlarlos y convertirlos\ en algo positivo.\ - La comunicación es la base de todo: cuando tengas un problema o un malentendido, la solución no es encerrarse en uno\ mismo, ya que al final entras en una espiral de negatividad que no te lleva a nada. Es aquí donde entra la comunicación,\ pero la que es sana y que nos permite expresar nuestro punto de vista de forma empática y respetuosa con los demás.\ \ Título: Estos son los mejores trucos para sacar el máximo partido a una terraza pequeña.\ Artículo: Se acerca el momento de empezar a disfrutar de los planes al aire libre, y estos son algunos trucos para\ decorar ese pequeño espacio que tienes en tu casa de forma eficiente. Con la inminente llegada de la primavera, con\ la subida de las temperaturas y los días de sol que trae consigo, los planes en espacios exteriores dan el pistoletazo\ de salida, siendo las terrazas el lugar de encuentro por excelencia con amigos y familia.\ Y no solo hacemos referencia a los lugares de ocio clásicos, como los bares y restaurantes, sino que, si eres de las\ privilegiadas que cuenta con un pequeño espacio en su casa, hay algunos trucos que puedes apuntar para sacarle el máximo\ partido. Lo primero que tienes que tener claro es qué quieres hacer con esa terraza, a qué la quieres dedicar. Esto\ hará que sea más fácil escoger la decoración, ya que, si prefieres que sea un lugar de reunión casual, optarás por\ unos buenos sofás, mientras que si lo necesitas para organizar almuerzos, una mesa grande y unas sillas son imprescindibles.\ A la hora de escoger los muebles, sean cuales sean, lo mejor es decantarse por unos que sean ligeros y con diseños sencillos,\ ya que harán que el espacio no esté tan recargado, dando sensación de amplitud. Aunque lo mejor es que sean plegables, ya\ que esto es fundamental en una terraza pequeña. El mobiliario multifuncional también es una gran alternativa, como un\ puff que sirva de mesita, o unas sillas reclinables que te permitan sentarte a comer y también tomar el sol a modo de\ tumbona. El lema de «calidad mejor que cantidad» toma todo el sentido en estos casos. En cuanto a la gama cromática,\ también tenemos preferencias cuando se trata de una estancia exterior, siendo el blanco la mejor baza, especialmente\ si recibes mucha luz natural. Esto se puede aplicar tanto en los elementos de decoración, como en las paredes, pudiendo\ combinarlos con otros colores como el azul o el terracota.\ Algo clave, más allá del mobiliario, son las plantas, que suelen ser las grandes protagonistas en este tipo de zonas,\ ya que aportan ese toque natural al espacio, que siempre es bien recibido. En el caso de las terrazas pequeñas, y\ con el fin de ahorrar espacio, siempre puedes colocarlas con maceteros en la barandilla o de forma vertical en la pared.\ La iluminación es súper importante, especialmente durante esas noches de primavera, en las que se puede disfrutar del\ cálido aire nocturno. Lo recomendable es optar por opciones que proporcionen un aire de intimidad, como unos farolillos\ o una guirnalda de luces. Por último, la intimidad es algo que valoramos mucho en espacios de exterior, ya que estás\ más expuesto. Pero para este problema, también hay soluciones que sean estéticas y eficientes. Si la terraza te lo permite,\ puedes instalar unas pequeñas cortinas, que sean ligeras para que dejen pasar la luz, aunque lo más habitual es decantarse\ por barillas estilo bambú en la barandilla, que además aportan un toque natural.\ """ async def generate_article_openai(title): api_key = os.getenv("OPENAI_API_KEY") print(f"Starting OpenAI request at: {datetime.datetime.now().time()}") async with httpx.AsyncClient(timeout=120.0) as client: response = await client.post( "https://api.openai.com/v1/chat/completions", headers={ "Content-Type": "application/json", "Authorization": f"Bearer {api_key}" }, json={ "model": "gpt-3.5-turbo-0125", "messages": [ {"role": "system", "content": prompt}, {"role": "user", "content": f"Write an article based on the title: '{title}'."} ] } ) response_data = response.json() print(f"OpenAI response received at: {datetime.datetime.now().time()}") return response_data['choices'][0]['message']['content'] async def generate_article_anthropic(title): api_key = os.getenv("ANTHROPIC_API_KEY") print(f"Starting Anthropic request at: {datetime.datetime.now().time()}") async with httpx.AsyncClient(timeout=120.0) as client: response = await client.post( "https://api.anthropic.com/v1/messages", headers={ "x-api-key": api_key, "anthropic-version": "2023-06-01", "Content-Type": "application/json" }, json={ "model": "claude-3-sonnet-20240229", "max_tokens": 2000, "messages": [ {"role": "user", "content": f"Write an article based on the title: '{title}'."} ] } ) response_data = response.json() print(f"Anthropic response received at: {datetime.datetime.now().time()}") return response_data['content'][0]['text'] async def generate_articles(title): openai_article, anthropic_article = await asyncio.gather( generate_article_openai(title), generate_article_anthropic(title) ) return openai_article, anthropic_article iface = gr.Interface( fn=generate_articles, inputs=gr.Textbox(lines=2, placeholder="Enter a title here..."), outputs=[ gr.Textbox(label="LLM 1 Output"), gr.Textbox(label="LLM 2 Output") ], title="Primera demo del asistente de redacción.", description="Esta demo trabaja con modelos de lenguaje previamente entrenados por Natasquad. Seleccione o escriba un título para generar un artículo, de click en el botón submit", examples=[ ["Qué hacer diferente en este verano"], ["Como puedo perder esos kilitos extra"], ["¿Me queda bien la ropa oscura?"] ] ) iface.launch()