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()