Browse Source

feat: rag api endpoint

Timothy J. Baek 1 year ago
parent
commit
b2c9f6dff8
3 changed files with 33 additions and 4 deletions
  1. 23 0
      backend/apps/rag/main.py
  2. 7 4
      backend/main.py
  3. 3 0
      backend/requirements.txt

+ 23 - 0
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}

+ 7 - 4
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")

+ 3 - 0
backend/requirements.txt

@@ -16,7 +16,10 @@ aiohttp
 peewee
 bcrypt
 
+
+langchain
 chromadb
+sentence_transformers
 
 PyJWT
 pyjwt[crypto]