pdrMottaS
change python version
2b6420a
raw
history blame
1.31 kB
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from fastapi.responses import JSONResponse
import uvicorn
import duckdb
from query_engine import set_query_engine
from llama_index.core.indices.struct_store import NLSQLTableQueryEngine
import os
from huggingface_hub import hf_hub_download
from models import SQL
app = FastAPI()
origins = ["*"]
app.add_middleware(
CORSMiddleware,
allow_origins=origins,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# query_engine:NLSQLTableQueryEngine = set_query_engine()
query_file_path = ""
@app.on_event("startup")
def startup():
dataset_name = "pdrMottaS/afabd-duckdb"
duckdb_filename = "afabd.db"
global query_file_path
query_file_path = hf_hub_download(repo_id=dataset_name, filename=duckdb_filename, repo_type="dataset")
@app.post("/sql")
async def query_database(query_data: SQL):
global query_file_path
conn = duckdb.connect(query_file_path,read_only=True)
df = conn.execute(query_data.query).fetch_df()
return JSONResponse(df.to_json(orient = "records"))
# @app.post("/llm")
# async def llm(prompt: str):
# response = query_engine.query(prompt)
# return JSONResponse({"promt":prompt,"response":response})
uvicorn.run(app,host='0.0.0.0',port=7860)