File size: 3,775 Bytes
58691e0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ecc5e3f
 
 
58691e0
 
 
 
 
 
 
 
 
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import gradio as gr

# Diccionario de clientes
clientes = {
    "cliente1": {
        "nombre": "Juan Pérez",
        "salario": 5000,
        "inversiones": 15000,
        "edad": 35,
        "objetivos": "ahorro para la jubilación"
    },
    "cliente2": {
        "nombre": "María López",
        "salario": 7500,
        "inversiones": 30000,
        "edad": 42,
        "objetivos": "compra de una vivienda"
    }
}

# Función para generar la carta de recomendación
def generar_carta_inversion(cliente_id: str, salario_mensual: float, objetivo: str) -> str:
    """Genera una carta personalizada para el cliente con base en el salario mensual y su objetivo financiero."""
    
    cliente = clientes.get(cliente_id)
    if not cliente:
        return "Cliente no encontrado."
    
    nombre = cliente["nombre"]
    inversiones = cliente["inversiones"]
    edad = cliente["edad"]

    # Plantilla de la carta
    carta = f"""
    {nombre}
    Dirección del Cliente
    Ciudad, Estado, Código Postal

    Fecha: [Fecha Actual]

    Estimado/a {nombre},

    Espero que este mensaje le encuentre bien. Me dirijo a usted para agradecerle su confianza en nuestro banco y para proporcionarle algunas recomendaciones personalizadas sobre cómo podría invertir de manera más eficiente, con base en sus actuales ingresos y objetivos financieros.

    Dado que actualmente tiene un salario mensual de ${salario_mensual:.2f} y ha acumulado inversiones por un total de ${inversiones:.2f}, creo que es un buen momento para evaluar las siguientes estrategias de inversión, teniendo en cuenta su edad de {edad} años y su objetivo de {objetivo}:

    1. **Diversificación de Portafolio**: Recomiendo considerar la diversificación de sus inversiones en diferentes clases de activos, como acciones, bonos, y bienes raíces. Esto puede ayudar a mitigar riesgos y maximizar sus retornos.

    2. **Fondos de Jubilación**: Como su objetivo principal es {objetivo}, le sugiero destinar una parte de sus ingresos a fondos de jubilación o planes de pensiones, aprovechando las ventajas fiscales que estos productos ofrecen.

    3. **Inversiones de Bajo Riesgo**: Invertir en bonos o fondos de inversión de bajo riesgo puede ser una buena manera de proteger su capital, especialmente dado el horizonte a largo plazo de su objetivo.

    4. **Asesoría Continua**: Finalmente, le recomiendo programar una reunión con uno de nuestros asesores financieros para revisar regularmente su portafolio y ajustar su estrategia de inversión según las condiciones del mercado y sus necesidades personales.

    Agradezco nuevamente su confianza en nosotros. Si tiene alguna pregunta o si desea discutir estas recomendaciones con más detalle, no dude en ponerse en contacto conmigo o con su asesor financiero de confianza.

    Quedo a su disposición para cualquier consulta.

    Atentamente,

    [Nombre del Asesor]
    Asesor Financiero
    Nombre del Banco
    Teléfono: [Número de Teléfono]
    Email: [Correo Electrónico]
    """

    return carta

# Configuración de la interfaz de Gradio
def interfaz_gradio(cliente_id, salario_mensual, objetivo):
    return generar_carta_inversion(cliente_id, salario_mensual, objetivo)

# Configuramos la interfaz de Gradio
with gr.Blocks() as demo:
    gr.Markdown("# Generador de Carta de Recomendación Financiera")
    
    cliente_id = gr.Textbox(label="ID del Cliente")
    salario_mensual = gr.Number(label="Salario Mensual")
    objetivo = gr.Textbox(label="Objetivo Financiero")
    
    output = gr.Textbox(label="Carta de Recomendación Generada")

    generar_btn = gr.Button("Generar Carta")

    generar_btn.click(interfaz_gradio, [cliente_id, salario_mensual, objetivo], output)

# Iniciar la aplicación
demo.launch()