medbrain-ai / scripts /start_server.py
amalsp's picture
Upload folder using huggingface_hub
ec507c4 verified
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()