diff --git a/backend/apps/rag/main.py b/backend/apps/rag/main.py new file mode 100644 index 000000000..6870792de --- /dev/null +++ b/backend/apps/rag/main.py @@ -0,0 +1,23 @@ +from fastapi import FastAPI, Request, Depends, HTTPException +from fastapi.middleware.cors import CORSMiddleware + +from apps.web.routers import auths, users, chats, modelfiles, utils +from config import WEBUI_VERSION, WEBUI_AUTH + + +app = FastAPI() + +origins = ["*"] + +app.add_middleware( + CORSMiddleware, + allow_origins=origins, + allow_credentials=True, + allow_methods=["*"], + allow_headers=["*"], +) + + +@app.get("/") +async def get_status(): + return {"status": True} diff --git a/backend/main.py b/backend/main.py index 0315e5f51..b682aad23 100644 --- a/backend/main.py +++ b/backend/main.py @@ -5,16 +5,18 @@ from fastapi.middleware.wsgi import WSGIMiddleware from fastapi.middleware.cors import CORSMiddleware from starlette.exceptions import HTTPException as StarletteHTTPException + from apps.ollama.main import app as ollama_app from apps.openai.main import app as openai_app from apps.web.main import app as webui_app +from apps.rag.main import app as rag_app + import time class SPAStaticFiles(StaticFiles): - async def get_response(self, path: str, scope): try: return await super().get_response(path, scope) @@ -49,9 +51,10 @@ async def check_url(request: Request, call_next): app.mount("/api/v1", webui_app) + app.mount("/ollama/api", ollama_app) app.mount("/openai/api", openai_app) +app.mount("/rag/api/v1", rag_app) -app.mount("/", - SPAStaticFiles(directory="../build", html=True), - name="spa-static-files") + +app.mount("/", SPAStaticFiles(directory="../build", html=True), name="spa-static-files") diff --git a/backend/requirements.txt b/backend/requirements.txt index ffdab8fea..7e8c24e68 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -16,7 +16,10 @@ aiohttp peewee bcrypt + +langchain chromadb +sentence_transformers PyJWT pyjwt[crypto]