dev #1

Merged
ly merged 41 commits from dev into main 2024-08-22 09:41:14 +08:00
Showing only changes of commit 01c815a17b - Show all commits
+44 -43
View File
@@ -1,4 +1,5 @@
from dotenv import load_dotenv from dotenv import load_dotenv
from llama_index.core.node_parser import SentenceSplitter
load_dotenv() load_dotenv()
@@ -13,55 +14,55 @@ from app.api.routers.upload import file_upload_router
from app.settings import init_settings from app.settings import init_settings
from app.observability import init_observability from app.observability import init_observability
from fastapi.staticfiles import StaticFiles from fastapi.staticfiles import StaticFiles
from phoenix.trace import using_project
logger = logging.getLogger("uvicorn") logger = logging.getLogger("uvicorn")
app = None
def init_webserver(): usPrj = using_project(os.getenv("PHOENIX_PROJECT_NAME"))
global app usPrj.__enter__()
app = FastAPI()
environment = os.getenv("ENVIRONMENT", "dev") # Default to 'development' if not set
if environment == "dev":
logger.warning("Running in development mode - allowing CORS for all origins")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
def mount_static_files(directory, path): init_settings()
if os.path.exists(directory): init_observability()
for dir, _, _ in os.walk(directory):
relative_path = os.path.relpath(dir, directory)
mount_path = path if relative_path == "." else f"{path}/{relative_path}"
logger.info(f"Mounting static files '{dir}' at {mount_path}")
app.mount(mount_path, StaticFiles(directory=dir), name=f"{dir}-static")
# Mount the data files to serve the file viewer app = FastAPI()
mount_static_files("data", "/api/files/data")
# Mount the output files from tools
mount_static_files("data_output", "/api/files/output")
app.include_router(chat_router, prefix="/api/chat")
app.include_router(file_upload_router, prefix="/api/chat/upload")
# Redirect to documentation page when accessing base URL environment = os.getenv("ENVIRONMENT", "dev") # Default to 'development' if not set
@app.get("/") if environment == "dev":
async def redirect_to_docs(): logger.warning("Running in development mode - allowing CORS for all origins")
return RedirectResponse(url="/docs") app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
def mount_static_files(directory, path):
if os.path.exists(directory):
for dir, _, _ in os.walk(directory):
relative_path = os.path.relpath(dir, directory)
mount_path = path if relative_path == "." else f"{path}/{relative_path}"
logger.info(f"Mounting static files '{dir}' at {mount_path}")
app.mount(mount_path, StaticFiles(directory=dir), name=f"{dir}-static")
# Mount the data files to serve the file viewer
mount_static_files("data", "/api/files/data")
# Mount the output files from tools
mount_static_files("data_output", "/api/files/output")
app.include_router(chat_router, prefix="/api/chat")
app.include_router(file_upload_router, prefix="/api/chat/upload")
# Redirect to documentation page when accessing base URL
@app.get("/")
async def redirect_to_docs():
return RedirectResponse(url="/docs")
SentenceSplitter
if __name__ == "__main__": if __name__ == "__main__":
from phoenix.trace import using_project app_host = os.getenv("APP_HOST", "0.0.0.0")
with using_project(os.getenv("PHOENIX_PROJECT_NAME")) as obj: app_port = int(os.getenv("APP_PORT", "8000"))
reload = True if environment == "dev" else False
reload = False
uvicorn.run(app="main:app", host=app_host, port=app_port, reload=reload)
init_settings() #usPrj.__exit__()
init_observability()
init_webserver()
app_host = os.getenv("APP_HOST", "0.0.0.0")
app_port = int(os.getenv("APP_PORT", "8000"))
#reload = True if environment == "dev" else False
reload = False
uvicorn.run(app=app, host=app_host, port=app_port, reload=reload)