25_abril / app.py
DiegoIrurita's picture
Update app.py
29b7b1b verified
raw
history blame
No virus
2.31 kB
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"])