fqa / app.py
dauduchieu's picture
Update app.py
5b8a863 verified
Raw
History Blame Contribute Delete
2.69 kB
print("Loading models...", end="")
from data_loader import load_data
from rag import find_similar_examples
from prompter import system_prompt, user_prompt_for
from llm import llm_request
from dotenv import load_dotenv
import os
load_dotenv()
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from datetime import datetime
import pytz
vietnam_tz = pytz.timezone("Asia/Ho_Chi_Minh")
now_vietnam = datetime.now(vietnam_tz)
df = load_data()
print("df shape:")
print(df.shape)
print("-> Done")
def reload_data():
global df
now_vietnam = datetime.now(vietnam_tz).strftime("%Y-%m-%d %H:%M:%S")
print(f"[{now_vietnam}] Reloading data...")
df = load_data()
print(f"-> Done | Update: df_shape = {df.shape}")
app = FastAPI()
app.add_middleware(
CORSMiddleware,
allow_origins=["*"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
@app.get('/')
def get_():
return { "Bye": "World!" }
@app.get('/check')
def check():
LLM_URL = os.getenv("LLM_URL", "https://generativelanguage.googleapis.com/v1beta/openai/")
LLM_API_KEY = os.getenv("LLM_API_KEY")
LLM_MODEL = os.getenv("LLM_MODEL")
LLM_MODEL_LEARN_LM = os.getenv("LLM_MODEL_LEARN_LM")
print(f"url: {LLM_URL}")
print(f"key: {LLM_API_KEY}")
print(f"model: {LLM_MODEL}")
print(f"model: {LLM_MODEL_LEARN_LM}")
return { "url": LLM_URL, "model": LLM_MODEL, "model": LLM_MODEL_LEARN_LM}
@app.post('/q')
def solve_q(q: str):
print(q)
print("Finding examples....", end="")
examples = find_similar_examples(q, df, 5)
print("-> Done\nSolving...", end="")
print(examples)
user_prompt = user_prompt_for(q, examples)
result = llm_request(system_prompt, user_prompt)
print("-> Done")
print(result)
print("\n\n---------------------\n\n")
return { "r": result }
@app.post('/reload')
def reload():
""" API để reload dữ liệu """
reload_data()
return {"status": "Data reloaded", "df_shape": df.shape}
print("-> Done\nLoading data...", end="")
def main():
df = load_data()
print("-> Done")
while True:
q = input("Input question: ")
if q == "exit()" or q == "exit":
print("FQA AI exit!")
return
print("Finding examples....", end="")
examples = find_similar_examples(q, df, 8)
print("-> Done\nSolving...", end="")
print(examples)
user_prompt = user_prompt_for(q, examples)
result = llm_request(system_prompt, user_prompt)
print("-> Done")
print(result)
print("\n\n---------------------\n\n")
# if __name__ == "__main__":
# main()