Spaces:
Sleeping
Sleeping
File size: 1,860 Bytes
0dda2a1 c4a2d1f 0dda2a1 cfd2b5e 064943c 0dda2a1 cfd2b5e 064943c 0dda2a1 011040f 064943c 0dda2a1 736af94 40d15f0 cfd2b5e 736af94 0dda2a1 736af94 40d15f0 064943c 0dda2a1 011040f 8f8a88e 681223f cfd2b5e 40d15f0 011040f 40d15f0 064943c 40d15f0 011040f 40d15f0 5ebc71d 736af94 5ebc71d 736af94 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
import io
from functions import *
from PyPDF2 import PdfReader
from fastapi import FastAPI, File, UploadFile
from fastapi.middleware.cors import CORSMiddleware
from langchain_community.document_loaders import UnstructuredURLLoader
app = FastAPI(title = "ConversAI", root_path = "/api/v1")
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.post("/signup")
async def signup(username: str, password: str):
response = createUser(username = username, password = password)
return response
@app.post("/login")
async def login(username: str, password: str):
response = matchPassword(username = username, password = password)
return response
@app.post("/newChatbot")
async def newChatbot(chatbotName: str, username: str):
chatbotName = f"convai-{username}-{chatbotName}"
return createTable(tablename = chatbotName)
@app.post("/getRawPDFText")
async def addPDFData(vectorstore: str, pdf: UploadFile = File(...)):
pdf = await pdf.read()
reader = PdfReader(io.BytesIO(pdf))
text = ""
for page in reader.pages:
text += page.extract_text()
return text
@app.post("/addData")
async def addText(vectorstore: str, text: str):
return addDocuments(text = text, vectorstore = vectorstore)
@app.post("/answerQuery")
async def answerQuestion(query: str, vectorstore: str, llmModel: str = "llama3-70b-8192"):
return answerQuery(query=query, vectorstore=vectorstore, llmModel=llmModel)
@app.post("/deleteChatbot")
async def delete(chatbotName: str):
return deleteTable(tableName=chatbotName)
@app.post("/listChatbots")
async def delete(username: str):
return listTables(username=username)
@app.post("/getWebsiteData")
async def crawlUrl(baseUrl: str):
return getRawWebText(url=baseUrl, timeout=30) |