Refactor main.py to include middleware for
flattening query string lists.
This commit is contained in:
parent
ef0d4e6f87
commit
564eef87c9
1 changed files with 15 additions and 8 deletions
|
|
@ -1,19 +1,16 @@
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Optional
|
from typing import Optional
|
||||||
from fastapi import FastAPI
|
from urllib.parse import urlencode
|
||||||
|
|
||||||
|
from fastapi import FastAPI, Request
|
||||||
from fastapi.middleware.cors import CORSMiddleware
|
from fastapi.middleware.cors import CORSMiddleware
|
||||||
from fastapi.responses import FileResponse
|
from fastapi.responses import FileResponse
|
||||||
from fastapi.staticfiles import StaticFiles
|
from fastapi.staticfiles import StaticFiles
|
||||||
|
|
||||||
from langflow.api import router
|
from langflow.api import router
|
||||||
|
|
||||||
|
|
||||||
from langflow.interface.utils import setup_llm_caching
|
from langflow.interface.utils import setup_llm_caching
|
||||||
from langflow.services.utils import initialize_services
|
|
||||||
from langflow.services.plugins.langfuse import LangfuseInstance
|
from langflow.services.plugins.langfuse import LangfuseInstance
|
||||||
from langflow.services.utils import (
|
from langflow.services.utils import initialize_services, teardown_services
|
||||||
teardown_services,
|
|
||||||
)
|
|
||||||
from langflow.utils.logger import configure
|
from langflow.utils.logger import configure
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -23,7 +20,6 @@ def create_app():
|
||||||
configure()
|
configure()
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
origins = ["*"]
|
origins = ["*"]
|
||||||
|
|
||||||
app.add_middleware(
|
app.add_middleware(
|
||||||
|
|
@ -34,6 +30,16 @@ def create_app():
|
||||||
allow_headers=["*"],
|
allow_headers=["*"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@app.middleware("http")
|
||||||
|
async def flatten_query_string_lists(request: Request, call_next):
|
||||||
|
flattened = []
|
||||||
|
for key, value in request.query_params.multi_items():
|
||||||
|
flattened.extend((key, entry) for entry in value.split(","))
|
||||||
|
|
||||||
|
request.scope["query_string"] = urlencode(flattened, doseq=True).encode("utf-8")
|
||||||
|
|
||||||
|
return await call_next(request)
|
||||||
|
|
||||||
@app.get("/health")
|
@app.get("/health")
|
||||||
def health():
|
def health():
|
||||||
return {"status": "ok"}
|
return {"status": "ok"}
|
||||||
|
|
@ -96,6 +102,7 @@ def setup_app(
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
import uvicorn
|
import uvicorn
|
||||||
|
|
||||||
from langflow.__main__ import get_number_of_workers
|
from langflow.__main__ import get_number_of_workers
|
||||||
|
|
||||||
configure()
|
configure()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue