from flask import Flask, request, jsonify import numpy as np app = Flask(__name__) def analizar_inversion(proyectos, pesos, tasas_retorno): # Aquí iría tu función de análisis de inversión # Por ejemplo: correlacion = np.corrcoef(pesos, tasas_retorno)[0, 1] desviacion_pesos = np.std(pesos) desviacion_retorno = np.std(tasas_retorno) proyecto_max = proyectos[np.argmax(tasas_retorno)] proyecto_min = proyectos[np.argmin(tasas_retorno)] return { "correlacion": correlacion, "desviacion_pesos": desviacion_pesos, "desviacion_retorno": desviacion_retorno, "proyecto_max": proyecto_max, "proyecto_min": proyecto_min } @app.route("/analizar-inversion", methods=["POST"]) def analizar_inversion_endpoint(): data = request.json proyectos = data["proyectos"] pesos = data["pesos"] tasas_retorno = data["tasas_retorno"] resultado = analizar_inversion(proyectos, pesos, tasas_retorno) return jsonify(resultado) if __name__ == "__main__": app.run(debug=True) import streamlit as st import requests def analizar_inversion_api(proyectos, pesos, tasas_retorno): url = "http://localhost:5000/analizar-inversion" data = {"proyectos": proyectos, "pesos": pesos, "tasas_retorno": tasas_retorno} response = requests.post(url, json=data) return response.json() st.title("Análisis de Inversión") proyectos = st.text_input("Proyectos (separados por comas)") pesos = st.text_input("Pesos (separados por comas)") tasas_retorno = st.text_input("Tasas de Retorno (separadas por comas)") if st.button("Analizar"): proyectos = proyectos.split(",") pesos = [float(p) for p in pesos.split(",")] tasas_retorno = [float(r) for r in tasas_retorno.split(",")] resultado = analizar_inversion_api(proyectos, pesos, tasas_retorno) st.write("Correlación entre pesos de inversión y tasas de retorno:", resultado["correlacion"]) st.write("Desviación estándar de los pesos de inversión:", resultado["desviacion_pesos"]) st.write("Desviación estándar de las tasas de retorno:", resultado["desviacion_retorno"]) st.write("Proyecto con mayor tasa de retorno:", resultado["proyecto_max"]) st.write("Proyecto con menor tasa de retorno:", resultado["proyecto_min"])