Spaces:
Sleeping
Sleeping
File size: 3,720 Bytes
be3a46d d53d57a be3a46d f71c677 99a97dd 78e21e6 99a97dd 1aa6c4c 99a97dd 67553c2 5083d32 99a97dd 5083d32 99a97dd 5083d32 99a97dd 5083d32 99a97dd 5083d32 99a97dd 5083d32 99a97dd 67553c2 be3a46d ef50c4f 5083d32 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. #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] a través de un ejemplo seleccionado como la mejor opción entre tips, guías, trucos, errores y sugerencias útiles. #Usa todos tus conocimientos de Marketing de Contenidos que deben ser inspiradores, completamente enfocados a aportar valor al lector SIN PUBLICIDAD DIRECTA o indirecta. #Generar un ejemplo desarrollado en 5 párrafos cortos relevantes, con párrafos de entre 10 y 20 palabras. #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 contenido enfocado en resolver dudas y agregar valor, NO en ventas directas. Sorpréndeme con tu mejor idea desarrollada! ##Propina: El usuario te dara $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=None,
submit_btn="Enviar"
)
return demo
if __name__ == "__main__":
ai = ConversationalAI()
demo = ai.create_chat_interface()
demo.queue()
demo.launch()
|