fastAPIv2 / routes /api /query.py
ragV98's picture
new space launch
6d24925
raw
history blame contribute delete
823 Bytes
from fastapi import APIRouter, HTTPException
from llama_index.core.indices.base import BaseIndex
from llama_index.core.query_engine import BaseQueryEngine
from components.indexers.news_indexer import get_or_build_index
import os
router = APIRouter()
DATA_PATH = "data/raw"
INDEX_PATH = "storage/index"
_index: BaseIndex = None
def get_index() -> BaseIndex:
global _index
if _index is None:
if not os.path.exists(DATA_PATH):
raise RuntimeError("❌ `data/raw/` is missing! Add documents for indexing.")
_index = get_or_build_index(DATA_PATH, INDEX_PATH)
return _index
@router.get("/query-news")
def query_news(q: str):
index = get_index()
query_engine: BaseQueryEngine = index.as_query_engine()
response = query_engine.query(q)
return {"response": str(response)}