Spaces:
Sleeping
Sleeping
File size: 3,668 Bytes
be3a46d d53d57a be3a46d f71c677 99a97dd 78e21e6 99a97dd ad2358b 99a97dd 67553c2 5083d32 99a97dd 5083d32 99a97dd 5083d32 99a97dd 5083d32 99a97dd 5083d32 99a97dd 5083d32 99a97dd 67553c2 be3a46d ef50c4f 5083d32 545273d f973b82 5083d32 be3a46d 99a97dd be3a46d ef50c4f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
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()
|