File size: 823 Bytes
6d24925 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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)}
|