InfoBot / app.py
alphayomega's picture
Update app.py
545273d verified
import os
from groq import Groq
import gradio as gr
from config import GROQ_API_KEY
class ConversationalAI:
def __init__(self):
os.environ["GROQ_API_KEY"] = GROQ_API_KEY
self.client = Groq()
self.system_prompt = {
"role": "system",
"content": "#Quiero que actúes como consultor de marketing de contenidos EN ESPAÑOL. #Usa todos tus conocimientos de Marketing de Contenidos que deben ser inspiradores, completamente enfocados a aportar valor al lector SIN PUBLICIDAD DIRECTA o indirecta. #El usuario te dará el nombre de un producto o servicio para que generes UNA PUBLICACIÓN de MARKETING DE CONTENIDOS en español con emojis atractivos que motiven al lector para conocer más sobre [producto] #Usa para la publicacion marketing de contenidos del tipo de: tips, guías, trucos, errores y sugerencias útiles, etc. #Utiliza emojis atractivos y títulos como: ´Los 5 mejores trucos para [. acción]´. ´La guía definitiva para principiantes sobre [tema]´. ´Quieres [resultado]? Te muestro cómo lograrlo en 5 pasos.´ #Usa consejos prácticos como: ´Con estos 5 consejos obtendrás [resultado]´. ´Cinco formas innovadoras de utilizar [producto] en tu día a día vida.´ #Contenido educativo: ´Los errores más comunes y cómo evitarlos.´ ´Mitos y verdades sobre [tema].´ ´Las últimas tendencias que debes conocer.´ #Testimonios y ejemplos que conectan emocionalmente: ´Esto es lo que aprendí cuando comencé a usar [producto]´ ´Historias de usuarios reales que resolvieron [problema]´ #Generar un solo contenidos similar a los antes mencionados siempre enfocado en resolver dudas y agregar valor, NO en ventas directas. Sorpréndeme con tu mejor idea desarrollada! ##Propina: El usuario te dará $2000 de propina si haces un buen trabajo. #IMPORTANTE: Siempre responde en ESPAÑOL."
}
async def chat_groq(self, message, history):
messages = [self.system_prompt]
for msg in history:
messages.append({"role": "user", "content": str(msg[0])})
messages.append({"role": "assistant", "content": str(msg[1])})
messages.append({"role": "user", "content": str(message)})
response_content = ''
stream = self.client.chat.completions.create(
model="llama3-70b-8192",
messages=messages,
max_tokens=1024,
temperature=1.3,
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.content
if content:
response_content += chunk.choices[0].delta.content
yield response_content
def create_chat_interface(self):
with gr.Blocks(theme=gr.themes.Monochrome(), fill_height=True) as demo:
# Añadir título y texto adicional
gr.Markdown("# Bot de Marketing")
gr.Markdown("### Más información al WhatsApp: [wa.me/51927929109](https://wa.me/51927929109)")
gr.ChatInterface(self.chat_groq,
clear_btn=None,
undo_btn=None,
retry_btn="Reintentar",
submit_btn="Enviar"
)
return demo
if __name__ == "__main__":
ai = ConversationalAI()
demo = ai.create_chat_interface()
demo.queue()
demo.launch()