| 90 | |
| 91 | |
| 92 | def _get_model(): |
| 93 | global _model |
| 94 | if _model is None: |
| 95 | from sentence_transformers import CrossEncoder |
| 96 | sys.stderr.write(f"[qodex-reranker] loading {MODEL_NAME} on {_device} …\n") |
| 97 | t0 = time.time() |
| 98 | # max_length 512 is plenty for a query + a code chunk; bump if you feed |
| 99 | # very large chunks. activation handled by CrossEncoder.predict. |
| 100 | _model = CrossEncoder(MODEL_NAME, max_length=512, device=_device) |
| 101 | sys.stderr.write(f"[qodex-reranker] ready in {time.time() - t0:.1f}s\n") |
| 102 | return _model |
| 103 | |
| 104 | |
| 105 | app = FastAPI(title="QodeX Reranker", version="1.0.0") |