Garabatos commited on
Commit
d94be51
1 Parent(s): b986340

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +20 -7
app.py CHANGED
@@ -2,26 +2,39 @@ import streamlit as st
2
  from fastapi import FastAPI
3
  from pydantic import BaseModel
4
  import uvicorn
5
- import threading
6
 
7
- # Configuraci贸n de la interfaz de usuario con Streamlit
8
  st.title("Mi Amigo Virtual 馃")
9
  st.write("Bienvenido a tu asistente virtual!")
10
 
11
- # Modelo de datos para la API
12
  class Message(BaseModel):
13
  text: str
14
 
15
- # Inicializa FastAPI
16
  app = FastAPI()
17
 
18
  @app.post("/chat")
19
  def chat(msg: Message):
20
  return {"response": f"Hola! Dijiste: {msg.text}"}
21
 
22
- # Funci贸n para ejecutar FastAPI en segundo plano
 
 
 
 
 
 
 
 
 
 
 
 
23
  def run_api():
24
- uvicorn.run(app, host="0.0.0.0", port=8000)
25
 
26
- # Iniciar FastAPI en un hilo separado
 
27
  threading.Thread(target=run_api, daemon=True).start()
 
2
  from fastapi import FastAPI
3
  from pydantic import BaseModel
4
  import uvicorn
5
+ from fastapi.middleware.wsgi import WSGIMiddleware
6
 
7
+ # Crear aplicaci贸n Streamlit
8
  st.title("Mi Amigo Virtual 馃")
9
  st.write("Bienvenido a tu asistente virtual!")
10
 
11
+ # Definir el modelo para la API
12
  class Message(BaseModel):
13
  text: str
14
 
15
+ # Crear instancia de FastAPI
16
  app = FastAPI()
17
 
18
  @app.post("/chat")
19
  def chat(msg: Message):
20
  return {"response": f"Hola! Dijiste: {msg.text}"}
21
 
22
+ # Integrar FastAPI en el servidor Streamlit
23
+ from starlette.applications import Starlette
24
+ from starlette.routing import Route
25
+
26
+ # Configura el servidor WSGI para que ambas aplicaciones corran en el mismo servidor
27
+ server = Starlette(debug=True, routes=[
28
+ Route("/", endpoint=st.write) # Endpoint para Streamlit
29
+ ])
30
+
31
+ # Agregar FastAPI a la aplicaci贸n principal
32
+ app.mount("/fastapi", WSGIMiddleware(server))
33
+
34
+ # Ejecutar el servidor Uvicorn con FastAPI
35
  def run_api():
36
+ uvicorn.run(app, host="0.0.0.0", port=8501)
37
 
38
+ # Iniciar FastAPI en segundo plano
39
+ import threading
40
  threading.Thread(target=run_api, daemon=True).start()