Kshitijk20's picture
agent version2
4db8795
# # from fastapi import APIRouter, HTTPException
# # from app.models import SQLQueryRequest, SQLQueryResponse
# # from app.services.sql_agent import execute_query
# # router = APIRouter()
# # @router.post("/query", response_model=SQLQueryResponse)
# # async def query_database(request: SQLQueryRequest):
# # try:
# # result = execute_query(request.query)
# # return SQLQueryResponse(result=result)
# # except ValueError as e:
# # raise HTTPException(status_code=400, detail=str(e))
# # except Exception as e:
# # raise HTTPException(status_code=500, detail=str(e))
# # app/api/v1/endpoints/sql_query.py
# from fastapi import APIRouter, HTTPException
# from pydantic import BaseModel
# from app.services.sql_agent_instance import sql_agent
# router = APIRouter()
# class SQLQueryRequest(BaseModel):
# query: str
# class SQLQueryResponse(BaseModel):
# result: str
# @router.post("/query", response_model=SQLQueryResponse)
# async def query_database(request: SQLQueryRequest):
# try:
# result = sql_agent.execute_query(request.query)
# return SQLQueryResponse(result=result)
# except ValueError as e:
# raise HTTPException(status_code=400, detail=str(e))
# except Exception as e:
# raise HTTPException(status_code=500, detail=str(e))
from fastapi import APIRouter, HTTPException
from pydantic import BaseModel
from app.services.sql_agent_instance import sql_agent
from typing import Optional
import uuid
router = APIRouter()
class SQLQueryRequest(BaseModel):
query: str
thread_id: Optional[str] = None
class SQLQueryResponse(BaseModel):
result: str
thread_id: str ## client can use this to continue the conversation
@router.post("/query", response_model=SQLQueryResponse)
async def query_database(request: SQLQueryRequest):
try:
## generate if not provided thread id
thread_id = request.thread_id or str(uuid.uuid4())
## add debug
print(f"Thread ID: {thread_id}, Query: {request.query}")
result = sql_agent.execute_query(request.query, config={"configurable": {"thread_id": thread_id}})
print(f"Result: {result}")
return SQLQueryResponse(result=result, thread_id=thread_id)
except ValueError as e:
raise HTTPException(status_code=400, detail=str(e))
except Exception as e:
raise HTTPException(status_code=500, detail=str(e))