File size: 1,735 Bytes
618e9ca
 
 
 
 
 
979e812
963b15c
047622e
 
 
 
 
 
 
618e9ca
 
 
 
6d6636b
618e9ca
 
 
 
9effa4e
963b15c
618e9ca
eb2e1af
 
 
 
 
 
 
 
 
9386ce8
 
 
eb2e1af
 
618e9ca
 
 
 
9effa4e
618e9ca
 
 
 
963b15c
618e9ca
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
53
# Directory structure
# ├── app/
# │   ├── main.py
# │   ├── db.py
# │   ├── routers/
# │   │   ├── search.py
# │   │   └── import_doc.py
# │   │   └── ws_progress.py
# │   ├── services/
# │   │   ├── google_books.py
# │   │   ├── open_library.py
# │   │   └── internet_archive.py
# │   │   └── project_gutenberg.py
# │   └── health/
# │       └── check_status.py
# ├── Dockerfile
# ├── docker-compose.yml
# └── README.md
# https://binkhoale1812-querysearcher.hf.space/
# https://binkhoale1812-querysearcher.hf.space/health

# app/main.py
from fastapi import FastAPI, WebSocket
from app.routers import search, import_doc
from app.health import check_status
import app.config

# Debugger
import logging
logging.basicConfig(
    level=logging.DEBUG,
    format="%(asctime)s — %(name)s — %(levelname)s — %(message)s",
    force=True
)
logger = logging.getLogger("book-query")
logger.setLevel(logging.DEBUG)
# Silence noisy pymongo logs
for noisy_module in ["pymongo", "pymongo.server_selection", "pymongo.topology", "pymongo.connection"]:
    logging.getLogger(noisy_module).setLevel(logging.WARNING)
logger.info("🚀 Starting Tutor Book Querier...")

app = FastAPI()

app.include_router(search.router, prefix="/search")
app.include_router(import_doc.router, prefix="/import")
app.include_router(check_status.router, prefix="/health")

@app.websocket("/ws/documents/{document_id}")
async def websocket_endpoint(websocket: WebSocket, document_id: str):
    await websocket.accept()
    from app.routers.ws_progress import forward_progress
    await forward_progress(websocket, document_id)