|
import gradio as gr |
|
from huggingface_hub import InferenceClient |
|
|
|
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta") |
|
|
|
def planificar_metas_ads( |
|
producto, |
|
tipo_producto, |
|
precio_producto, |
|
meta_ventas, |
|
plazo, |
|
presupuesto_ads_por_venta, |
|
plataformas_ads, |
|
audiencia_objetivo, |
|
observaciones, |
|
otros_gastos_por_venta, |
|
): |
|
system_message = f""" |
|
Eres un experto en publicidad en redes sociales y planificación de metas. Tu tarea es crear un plan detallado para que un marketer alcance sus objetivos de ventas utilizando anuncios en redes sociales. |
|
|
|
Considera los siguientes parámetros: |
|
- Producto: {producto} |
|
- Tipo de producto: {tipo_producto} (físico, digital, ebook) |
|
- Precio del producto: {precio_producto} |
|
- Meta de ventas: {meta_ventas} |
|
- Plazo: {plazo} |
|
- Presupuesto para anuncios por venta: {presupuesto_ads_por_venta} |
|
- Plataformas de anuncios: {plataformas_ads} |
|
- Audiencia objetivo: {audiencia_objetivo} |
|
- Observaciones adicionales: {observaciones} |
|
- Otros gastos por venta: {otros_gastos_por_venta} |
|
|
|
Genera un plan detallado que incluya: |
|
- Estrategias de publicidad en redes sociales recomendadas (segmentación, creatividades, etc.). |
|
- Distribución del presupuesto entre las plataformas seleccionadas. |
|
- Calendario de publicaciones y campañas publicitarias. |
|
- Métricas clave a monitorear (CTR, CPC, ROAS). |
|
- Consejos para optimizar las campañas y superar posibles obstáculos. |
|
- Considera las observaciones adicionales y los gastos por venta del usuario para personalizar el plan y calcular la proyección. |
|
|
|
Organiza la información de forma clara y concisa. |
|
Asegúrate de que todas tus respuestas estén en español y sean lo más prácticas y útiles posible. |
|
""" |
|
|
|
prompt = "Crea un plan detallado para alcanzar la meta de ventas mediante anuncios en redes sociales, considerando los gastos por venta." |
|
|
|
messages = [ |
|
{"role": "system", "content": system_message}, |
|
{"role": "user", "content": prompt}, |
|
] |
|
|
|
response = "" |
|
for message in client.chat_completion( |
|
messages, |
|
max_tokens=2048, |
|
stream=True, |
|
temperature=0.7, |
|
top_p=0.95, |
|
): |
|
token = message.choices[0].delta.content |
|
if token: |
|
response += token |
|
yield response |
|
|
|
with gr.Blocks(title="Planificador de Metas con Anuncios en Redes Sociales") as demo: |
|
gr.Markdown("# Planificador de Metas con Anuncios en Redes Sociales") |
|
|
|
with gr.Row(): |
|
with gr.Column(): |
|
producto_input = gr.Textbox(label="Nombre del Producto") |
|
tipo_producto_input = gr.Dropdown( |
|
choices=["Físico", "Digital (Curso)", "Ebook"], label="Tipo de Producto" |
|
) |
|
precio_producto_input = gr.Number(label="Precio del Producto") |
|
meta_ventas_input = gr.Number(label="Meta de Ventas") |
|
plazo_input = gr.Textbox(label="Plazo (Ej: 1 mes, 3 meses)") |
|
presupuesto_ads_por_venta_input = gr.Number(label="Presupuesto para Anuncios por Venta") |
|
plataformas_ads_input = gr.Textbox(label="Plataformas de Anuncios (Ej: Facebook Ads, Instagram Ads)") |
|
audiencia_objetivo_input = gr.Textbox(label="Audiencia Objetivo") |
|
observaciones_input = gr.Textbox(label="Observaciones Adicionales") |
|
otros_gastos_por_venta_input = gr.Number(label="Otros Gastos por Venta") |
|
|
|
planificar_button = gr.Button("Planificar Meta con Anuncios") |
|
output_text = gr.Textbox(label="Plan de Metas con Anuncios", lines=20) |
|
|
|
planificar_button.click( |
|
planificar_metas_ads, |
|
inputs=[ |
|
producto_input, |
|
tipo_producto_input, |
|
precio_producto_input, |
|
meta_ventas_input, |
|
plazo_input, |
|
presupuesto_ads_por_venta_input, |
|
plataformas_ads_input, |
|
audiencia_objetivo_input, |
|
observaciones_input, |
|
otros_gastos_por_venta_input, |
|
], |
|
outputs=output_text, |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |