Spaces:
Sleeping
Sleeping
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 = "" | |
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") | |
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) |