File size: 1,684 Bytes
0dda2a1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
cfd2b5e
064943c
0dda2a1
 
 
 
cfd2b5e
064943c
0dda2a1
 
40d15f0
 
064943c
0dda2a1
 
 
40d15f0
cfd2b5e
 
 
 
 
064943c
0dda2a1
 
 
40d15f0
064943c
0dda2a1
 
 
8f8a88e
064943c
cfd2b5e
40d15f0
 
 
064943c
40d15f0
 
 
064943c
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
import io
from functions import *
from PyPDF2 import PdfReader
from fastapi import FastAPI, File, UploadFile
from fastapi.middleware.cors import CORSMiddleware


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.get("/newChatbot/{chatbotName}")
async def newChatbot(chatbotName: str):
    return createTable(tablename = chatbotName)


@app.post("/addPDF")
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 addDocuments(text = text, vectorstore = vectorstore)


@app.post("/addText")
async def addText(vectorstore: str, text: str):
    return addDocuments(text = text, vectorstore = vectorstore)


@app.get("/answerQuery")
async def answerQuestion(query: str, vectorstore: str, llmModel: str = "llama3-70b-8192"):
    return answerQuery(query=query, vectorstore=vectorstore, llmModel=llmModel)


@app.get("/deleteChatbot/{chatbotName}")
async def delete(chatbotName: str):
    return deleteTable(tableName=chatbotName)

@app.get("/listChatbots/{username}")
async def delete(username: str):
    return listTables(username=username)