Spaces:
Sleeping
Sleeping
File size: 1,572 Bytes
255c883 ec507c4 255c883 | 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | from __future__ import annotations
import os
import uvicorn
from app.config import settings
from app.services.rag import MedicalRAGService
def build_index_if_possible() -> None:
try:
service = MedicalRAGService(
pdf_path=settings.pdf_source_path,
index_path=settings.vector_index_path,
metadata_path=settings.vector_metadata_path,
embedding_model=settings.openai_embedding_model,
top_k=settings.top_k_results,
api_key=settings.openai_api_key,
)
if service.indexed:
print("MedBRAIN AI: vector index already present.")
return
if not settings.pdf_source_path.exists():
print(f"MedBRAIN AI: PDF not found at {settings.pdf_source_path}.")
return
if not settings.openai_api_key:
print("MedBRAIN AI: OPENAI_API_KEY missing, skipping index build.")
return
print("MedBRAIN AI: building vector index for first startup...")
result = service.build_index()
print(
f"MedBRAIN AI: indexed {result['pages']} pages into {result['chunks']} chunks."
)
except Exception as exc:
print(f"MedBRAIN AI: startup indexing skipped due to error: {exc}")
def main() -> None:
build_index_if_possible()
port = int(os.getenv("PORT", "7860"))
reload_enabled = os.getenv("MEDBRAIN_RELOAD", "false").lower() == "true"
uvicorn.run("app.main:app", host="0.0.0.0", port=port, reload=reload_enabled)
if __name__ == "__main__":
main()
|