[OK] .env saved at /Users/rishabhkumar/.financebench/repo/.env (4 keys set)
[INFO] Bringing up the stack: docker compose -f compose.minimal.yml up -d
[+] up 9/9
 ✔ Network repo_rag-net      Created                                        0.0s
 ✔ Volume repo_hf_cache      Created                                        0.0s
 ✔ Volume repo_qdrant_data   Created                                        0.0s
 ✔ Volume repo_pg_data       Created                                        0.0s
 ✔ Volume repo_redis_data    Created                                        0.0s
 ✔ Container repo-postgres-1 Healthy                                       11.3s
 ✔ Container repo-redis-1    Healthy                                       11.3s
 ✔ Container repo-qdrant-1   Healthy                                       11.3s
 ✔ Container repo-api-1      Started                                       11.4s
[OK] Containers started.
[INFO] Waiting for /v1/health (timeout 360s). First boot downloads the BGE
reranker (~570MB) and is the slowest step.
[OK] API healthy after 10s.
[OK] Models loaded.
[INFO] Seeding sample corpus (8 PDFs, ~60s)...
onnxruntime cpuid_info warning: Unknown CPU vendor. cpuinfo_vendor value: 0
2026-05-29 08:48:52,746 src.ingestion.pipeline INFO Ingesting: data/sample/10k_aapl_2023.pdf -> financial_docs
2026-05-29 08:48:57,322 docling.datamodel.document INFO detected formats: [<InputFormat.PDF: 'pdf'>]
2026-05-29 08:48:57,344 docling.document_converter INFO Going to convert document batch...
2026-05-29 08:48:57,344 docling.document_converter INFO Initializing pipeline for StandardPdfPipeline with options hash 80a8a1322ca5ef46817c7adbf875fff6
2026-05-29 08:48:57,350 docling.models.factories.base_factory INFO Loading plugin 'docling_defaults'
2026-05-29 08:48:57,352 docling.models.factories INFO Registered picture descriptions: ['picture_description_vlm_engine', 'vlm', 'api']
2026-05-29 08:48:57,357 docling.models.factories.base_factory INFO Loading plugin 'docling_defaults'
2026-05-29 08:48:57,364 docling.models.factories INFO Registered ocr engines: ['auto', 'easyocr', 'kserve_v2_ocr', 'ocrmac', 'rapidocr', 'tesserocr', 'tesseract']
2026-05-29 08:48:57,382 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because onnxruntime is not installed.
2026-05-29 08:48:57,382 docling.models.stages.ocr.auto_ocr_model INFO easyocr cannot be used because it is not installed.
2026-05-29 08:48:57,384 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because rapidocr or torch is not installed.
2026-05-29 08:48:57,384 docling.models.stages.ocr.auto_ocr_model WARNING No OCR engine found. Please review the install details.
2026-05-29 08:48:57,389 docling.models.factories.base_factory INFO Loading plugin 'docling_defaults'
2026-05-29 08:48:57,391 docling.models.factories INFO Registered layout engines: ['layout_object_detection', 'docling_layout_default', 'docling_experimental_table_crops_layout']
2026-05-29 08:48:57,394 docling.utils.accelerator_utils INFO Accelerator device: 'cpu'
2026-05-29 08:50:06,829 docling.models.factories.base_factory INFO Loading plugin 'docling_defaults'
2026-05-29 08:50:06,835 docling.models.factories INFO Registered table structure engines: ['docling_tableformer', 'docling_tableformer_v2', 'granite_vision_table']
2026-05-29 08:50:29,187 src.ingestion.docling_loader INFO Docling failed on 10k_aapl_2023.pdf (ImportError: libxcb.so.1: cannot open shared object file: No such file or directory); falling back to pypdf
2026-05-29 08:50:29,193 src.ingestion.pipeline INFO   Chunked into 40 pieces
2026-05-29 08:50:29,242 httpx INFO HTTP Request: GET http://qdrant:6333/collections "HTTP/1.1 200 OK"
2026-05-29 08:50:29,248 httpx INFO HTTP Request: GET http://qdrant:6333 "HTTP/1.1 200 OK"
/usr/local/lib/python3.12/site-packages/qdrant_client/qdrant_remote.py:282: UserWarning: Qdrant client version 1.18.0 is incompatible with server version 1.13.2. Major versions should match and minor version difference must not exceed 1. Set check_compatibility=False to skip version check.
  show_warning(
2026-05-29 08:50:29,453 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs "HTTP/1.1 200 OK"
2026-05-29 08:50:29,485 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/index?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:29,513 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/index?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:29,540 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/index?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:29,590 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/index?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:29,597 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:29,597 src.services.vector_store INFO Created hybrid collection 'financial_docs' with dense + sparse vectors
2026-05-29 08:50:37,390 httpx INFO HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2026-05-29 08:50:38,173 src.services.vector_store INFO Loading sparse embedder: Qdrant/bm25
2026-05-29 08:50:38,407 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:38,409 src.ingestion.pipeline INFO   Uploaded 40 chunks to Qdrant collection 'financial_docs'
2026-05-29 08:50:38,409 src.ingestion.pipeline INFO Ingesting: data/sample/10k_msft_2023.pdf -> financial_docs
2026-05-29 08:50:38,528 docling.datamodel.document INFO detected formats: [<InputFormat.PDF: 'pdf'>]
2026-05-29 08:50:38,530 docling.document_converter INFO Going to convert document batch...
2026-05-29 08:50:38,530 docling.document_converter INFO Initializing pipeline for StandardPdfPipeline with options hash 80a8a1322ca5ef46817c7adbf875fff6
2026-05-29 08:50:38,532 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because onnxruntime is not installed.
2026-05-29 08:50:38,532 docling.models.stages.ocr.auto_ocr_model INFO easyocr cannot be used because it is not installed.
2026-05-29 08:50:38,534 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because rapidocr or torch is not installed.
2026-05-29 08:50:38,534 docling.models.stages.ocr.auto_ocr_model WARNING No OCR engine found. Please review the install details.
2026-05-29 08:50:38,534 docling.utils.accelerator_utils INFO Accelerator device: 'cpu'
2026-05-29 08:50:39,257 src.ingestion.docling_loader INFO Docling failed on 10k_msft_2023.pdf (ImportError: libxcb.so.1: cannot open shared object file: No such file or directory); falling back to pypdf
2026-05-29 08:50:39,263 src.ingestion.pipeline INFO   Chunked into 101 pieces
2026-05-29 08:50:39,284 httpx INFO HTTP Request: GET http://qdrant:6333/collections "HTTP/1.1 200 OK"
2026-05-29 08:50:39,295 httpx INFO HTTP Request: GET http://qdrant:6333 "HTTP/1.1 200 OK"
2026-05-29 08:50:39,684 httpx INFO HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2026-05-29 08:50:40,746 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:41,116 httpx INFO HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2026-05-29 08:50:41,959 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:42,411 httpx INFO HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2026-05-29 08:50:42,431 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:42,431 src.ingestion.pipeline INFO   Uploaded 101 chunks to Qdrant collection 'financial_docs'
2026-05-29 08:50:42,432 src.ingestion.pipeline INFO Ingesting: data/sample/10k_tsla_2023.pdf -> financial_docs
2026-05-29 08:50:42,834 docling.datamodel.document INFO detected formats: [<InputFormat.PDF: 'pdf'>]
2026-05-29 08:50:42,835 docling.document_converter INFO Going to convert document batch...
2026-05-29 08:50:42,835 docling.document_converter INFO Initializing pipeline for StandardPdfPipeline with options hash 80a8a1322ca5ef46817c7adbf875fff6
2026-05-29 08:50:42,837 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because onnxruntime is not installed.
2026-05-29 08:50:42,837 docling.models.stages.ocr.auto_ocr_model INFO easyocr cannot be used because it is not installed.
2026-05-29 08:50:42,839 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because rapidocr or torch is not installed.
2026-05-29 08:50:42,839 docling.models.stages.ocr.auto_ocr_model WARNING No OCR engine found. Please review the install details.
2026-05-29 08:50:42,839 docling.utils.accelerator_utils INFO Accelerator device: 'cpu'
2026-05-29 08:50:43,550 src.ingestion.docling_loader INFO Docling failed on 10k_tsla_2023.pdf (ImportError: libxcb.so.1: cannot open shared object file: No such file or directory); falling back to pypdf
2026-05-29 08:50:43,553 src.ingestion.pipeline INFO   Chunked into 89 pieces
2026-05-29 08:50:43,566 httpx INFO HTTP Request: GET http://qdrant:6333/collections "HTTP/1.1 200 OK"
2026-05-29 08:50:43,576 httpx INFO HTTP Request: GET http://qdrant:6333 "HTTP/1.1 200 OK"
2026-05-29 08:50:43,916 httpx INFO HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2026-05-29 08:50:44,727 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:45,267 httpx INFO HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2026-05-29 08:50:46,132 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:46,133 src.ingestion.pipeline INFO   Uploaded 89 chunks to Qdrant collection 'financial_docs'
2026-05-29 08:50:46,134 src.ingestion.pipeline INFO Ingesting: data/sample/expense_policy_corporate_travel.pdf -> financial_docs
2026-05-29 08:50:46,156 docling.datamodel.document INFO detected formats: [<InputFormat.PDF: 'pdf'>]
2026-05-29 08:50:46,157 docling.document_converter INFO Going to convert document batch...
2026-05-29 08:50:46,157 docling.document_converter INFO Initializing pipeline for StandardPdfPipeline with options hash 80a8a1322ca5ef46817c7adbf875fff6
2026-05-29 08:50:46,159 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because onnxruntime is not installed.
2026-05-29 08:50:46,159 docling.models.stages.ocr.auto_ocr_model INFO easyocr cannot be used because it is not installed.
2026-05-29 08:50:46,161 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because rapidocr or torch is not installed.
2026-05-29 08:50:46,161 docling.models.stages.ocr.auto_ocr_model WARNING No OCR engine found. Please review the install details.
2026-05-29 08:50:46,161 docling.utils.accelerator_utils INFO Accelerator device: 'cpu'
2026-05-29 08:50:46,898 src.ingestion.docling_loader INFO Docling failed on expense_policy_corporate_travel.pdf (ImportError: libxcb.so.1: cannot open shared object file: No such file or directory); falling back to pypdf
2026-05-29 08:50:46,900 src.ingestion.pipeline INFO   Chunked into 8 pieces
2026-05-29 08:50:46,910 httpx INFO HTTP Request: GET http://qdrant:6333/collections "HTTP/1.1 200 OK"
2026-05-29 08:50:46,914 httpx INFO HTTP Request: GET http://qdrant:6333 "HTTP/1.1 200 OK"
2026-05-29 08:50:47,418 httpx INFO HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2026-05-29 08:50:47,900 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:47,900 src.ingestion.pipeline INFO   Uploaded 8 chunks to Qdrant collection 'financial_docs'
2026-05-29 08:50:47,901 src.ingestion.pipeline INFO Ingesting: data/sample/expense_policy_procurement.pdf -> financial_docs
2026-05-29 08:50:47,923 docling.datamodel.document INFO detected formats: [<InputFormat.PDF: 'pdf'>]
2026-05-29 08:50:47,923 docling.document_converter INFO Going to convert document batch...
2026-05-29 08:50:47,923 docling.document_converter INFO Initializing pipeline for StandardPdfPipeline with options hash 80a8a1322ca5ef46817c7adbf875fff6
2026-05-29 08:50:47,926 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because onnxruntime is not installed.
2026-05-29 08:50:47,926 docling.models.stages.ocr.auto_ocr_model INFO easyocr cannot be used because it is not installed.
2026-05-29 08:50:47,928 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because rapidocr or torch is not installed.
2026-05-29 08:50:47,928 docling.models.stages.ocr.auto_ocr_model WARNING No OCR engine found. Please review the install details.
2026-05-29 08:50:47,928 docling.utils.accelerator_utils INFO Accelerator device: 'cpu'
2026-05-29 08:50:48,754 src.ingestion.docling_loader INFO Docling failed on expense_policy_procurement.pdf (ImportError: libxcb.so.1: cannot open shared object file: No such file or directory); falling back to pypdf
2026-05-29 08:50:48,756 src.ingestion.pipeline INFO   Chunked into 6 pieces
2026-05-29 08:50:48,769 httpx INFO HTTP Request: GET http://qdrant:6333/collections "HTTP/1.1 200 OK"
2026-05-29 08:50:48,775 httpx INFO HTTP Request: GET http://qdrant:6333 "HTTP/1.1 200 OK"
2026-05-29 08:50:49,449 httpx INFO HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2026-05-29 08:50:49,554 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:49,555 src.ingestion.pipeline INFO   Uploaded 6 chunks to Qdrant collection 'financial_docs'
2026-05-29 08:50:49,556 src.ingestion.pipeline INFO Ingesting: data/sample/invoice_cloudservices_003.pdf -> financial_docs
2026-05-29 08:50:49,587 docling.datamodel.document INFO detected formats: [<InputFormat.PDF: 'pdf'>]
2026-05-29 08:50:49,588 docling.document_converter INFO Going to convert document batch...
2026-05-29 08:50:49,588 docling.document_converter INFO Initializing pipeline for StandardPdfPipeline with options hash 80a8a1322ca5ef46817c7adbf875fff6
2026-05-29 08:50:49,590 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because onnxruntime is not installed.
2026-05-29 08:50:49,590 docling.models.stages.ocr.auto_ocr_model INFO easyocr cannot be used because it is not installed.
2026-05-29 08:50:49,592 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because rapidocr or torch is not installed.
2026-05-29 08:50:49,592 docling.models.stages.ocr.auto_ocr_model WARNING No OCR engine found. Please review the install details.
2026-05-29 08:50:49,592 docling.utils.accelerator_utils INFO Accelerator device: 'cpu'
2026-05-29 08:50:50,301 src.ingestion.docling_loader INFO Docling failed on invoice_cloudservices_003.pdf (ImportError: libxcb.so.1: cannot open shared object file: No such file or directory); falling back to pypdf
2026-05-29 08:50:50,302 src.ingestion.pipeline INFO   Chunked into 2 pieces
2026-05-29 08:50:50,312 httpx INFO HTTP Request: GET http://qdrant:6333/collections "HTTP/1.1 200 OK"
2026-05-29 08:50:50,316 httpx INFO HTTP Request: GET http://qdrant:6333 "HTTP/1.1 200 OK"
2026-05-29 08:50:50,733 httpx INFO HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2026-05-29 08:50:50,744 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:50,745 src.ingestion.pipeline INFO   Uploaded 2 chunks to Qdrant collection 'financial_docs'
2026-05-29 08:50:50,745 src.ingestion.pipeline INFO Ingesting: data/sample/invoice_globalconsulting_002.pdf -> financial_docs
2026-05-29 08:50:50,765 docling.datamodel.document INFO detected formats: [<InputFormat.PDF: 'pdf'>]
2026-05-29 08:50:50,765 docling.document_converter INFO Going to convert document batch...
2026-05-29 08:50:50,766 docling.document_converter INFO Initializing pipeline for StandardPdfPipeline with options hash 80a8a1322ca5ef46817c7adbf875fff6
2026-05-29 08:50:50,767 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because onnxruntime is not installed.
2026-05-29 08:50:50,768 docling.models.stages.ocr.auto_ocr_model INFO easyocr cannot be used because it is not installed.
2026-05-29 08:50:50,769 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because rapidocr or torch is not installed.
2026-05-29 08:50:50,769 docling.models.stages.ocr.auto_ocr_model WARNING No OCR engine found. Please review the install details.
2026-05-29 08:50:50,769 docling.utils.accelerator_utils INFO Accelerator device: 'cpu'
2026-05-29 08:50:51,434 src.ingestion.docling_loader INFO Docling failed on invoice_globalconsulting_002.pdf (ImportError: libxcb.so.1: cannot open shared object file: No such file or directory); falling back to pypdf
2026-05-29 08:50:51,436 src.ingestion.pipeline INFO   Chunked into 2 pieces
2026-05-29 08:50:51,446 httpx INFO HTTP Request: GET http://qdrant:6333/collections "HTTP/1.1 200 OK"
2026-05-29 08:50:51,452 httpx INFO HTTP Request: GET http://qdrant:6333 "HTTP/1.1 200 OK"
2026-05-29 08:50:51,879 httpx INFO HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2026-05-29 08:50:51,892 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:51,892 src.ingestion.pipeline INFO   Uploaded 2 chunks to Qdrant collection 'financial_docs'
2026-05-29 08:50:51,893 src.ingestion.pipeline INFO Ingesting: data/sample/invoice_techsolutions_001.pdf -> financial_docs
2026-05-29 08:50:51,913 docling.datamodel.document INFO detected formats: [<InputFormat.PDF: 'pdf'>]
2026-05-29 08:50:51,914 docling.document_converter INFO Going to convert document batch...
2026-05-29 08:50:51,914 docling.document_converter INFO Initializing pipeline for StandardPdfPipeline with options hash 80a8a1322ca5ef46817c7adbf875fff6
2026-05-29 08:50:51,915 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because onnxruntime is not installed.
2026-05-29 08:50:51,915 docling.models.stages.ocr.auto_ocr_model INFO easyocr cannot be used because it is not installed.
2026-05-29 08:50:51,917 docling.models.stages.ocr.auto_ocr_model INFO rapidocr cannot be used because rapidocr or torch is not installed.
2026-05-29 08:50:51,917 docling.models.stages.ocr.auto_ocr_model WARNING No OCR engine found. Please review the install details.
2026-05-29 08:50:51,917 docling.utils.accelerator_utils INFO Accelerator device: 'cpu'
2026-05-29 08:50:52,604 src.ingestion.docling_loader INFO Docling failed on invoice_techsolutions_001.pdf (ImportError: libxcb.so.1: cannot open shared object file: No such file or directory); falling back to pypdf
2026-05-29 08:50:52,608 src.ingestion.pipeline INFO   Chunked into 1 pieces
2026-05-29 08:50:52,629 httpx INFO HTTP Request: GET http://qdrant:6333/collections "HTTP/1.1 200 OK"
2026-05-29 08:50:52,636 httpx INFO HTTP Request: GET http://qdrant:6333 "HTTP/1.1 200 OK"
2026-05-29 08:50:53,119 httpx INFO HTTP Request: POST https://api.openai.com/v1/embeddings "HTTP/1.1 200 OK"
2026-05-29 08:50:53,130 httpx INFO HTTP Request: PUT http://qdrant:6333/collections/financial_docs/points?wait=true "HTTP/1.1 200 OK"
2026-05-29 08:50:53,131 src.ingestion.pipeline INFO   Uploaded 1 chunks to Qdrant collection 'financial_docs'
2026-05-29 08:50:53,131 src.ingestion.pipeline INFO Total chunks ingested from data/sample: 249
Seeded 249 chunks from sample data.
The following objects are still open and will now be closed: [<PdfDocument 0xffff935cb230 from <_io.BytesIO object at 0xfffeb1581e90>>, <PdfDocument 0xfffeb245faa0 from <_io.BytesIO object at 0xfffeb1580770>>, <PdfDocument 0xfffeb2ac8ef0 from <_io.BytesIO object at 0xfffeb1723380>>, <PdfDocument 0xfffeb294b710 from <_io.BytesIO object at 0xfffeb2386980>>, <PdfDocument 0xfffeb24c8380 from <_io.BytesIO object at 0xfffeb21a7470>>, <PdfDocument 0xfffeb268c7d0 from <_io.BytesIO object at 0xfffeb1720900>>]
[OK] Corpus seeded.
[OK] Backend health: OK
╭─ Error ──────────────────────────────────────────────────────────────────────╮
│ Components failed to load:                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯
  reranker: error: ModuleNotFoundError: No module named 'peft'
[OK] Qdrant collection 'financial_docs': 250 chunks

╭─ Error ──────────────────────────────────────────────────────────────────────╮
│ Setup completed with WARNINGS — chat may not work correctly. See the lines   │
│ above + `docker compose logs api` for details.                               │
╰──────────────────────────────────────────────────────────────────────────────╯
Tip: set FB_PROFILE=admin (or any name) in different terminals to keep separate
identities for the multi-party HITL demo.



❯ pip install peft
Collecting peft
  Downloading peft-0.19.1-py3-none-any.whl.metadata (15 kB)
Requirement already satisfied: numpy>=1.17 in ./miniforge3/lib/python3.12/site-packages (from peft) (2.4.6)
Requirement already satisfied: packaging>=20.0 in ./miniforge3/lib/python3.12/site-packages (from peft) (25.0)
Requirement already satisfied: psutil in ./miniforge3/lib/python3.12/site-packages (from peft) (7.2.2)
Requirement already satisfied: pyyaml in ./miniforge3/lib/python3.12/site-packages (from peft) (6.0.3)
Requirement already satisfied: torch>=1.13.0 in ./miniforge3/lib/python3.12/site-packages (from peft) (2.12.0)
Requirement already satisfied: transformers in ./miniforge3/lib/python3.12/site-packages (from peft) (4.51.3)
Requirement already satisfied: tqdm in ./miniforge3/lib/python3.12/site-packages (from peft) (4.67.1)
Requirement already satisfied: accelerate>=0.21.0 in ./miniforge3/lib/python3.12/site-packages (from peft) (1.13.0)
Requirement already satisfied: safetensors in ./miniforge3/lib/python3.12/site-packages (from peft) (0.7.0)
Requirement already satisfied: huggingface_hub>=0.25.0 in ./miniforge3/lib/python3.12/site-packages (from peft) (0.36.2)
Requirement already satisfied: filelock in ./miniforge3/lib/python3.12/site-packages (from huggingface_hub>=0.25.0->peft) (3.29.0)
Requirement already satisfied: fsspec>=2023.5.0 in ./miniforge3/lib/python3.12/site-packages (from huggingface_hub>=0.25.0->peft) (2026.4.0)
Requirement already satisfied: hf-xet<2.0.0,>=1.1.3 in ./miniforge3/lib/python3.12/site-packages (from huggingface_hub>=0.25.0->peft) (1.5.0)
Requirement already satisfied: requests in ./miniforge3/lib/python3.12/site-packages (from huggingface_hub>=0.25.0->peft) (2.32.5)
Requirement already satisfied: typing-extensions>=3.7.4.3 in ./miniforge3/lib/python3.12/site-packages (from huggingface_hub>=0.25.0->peft) (4.15.0)
Requirement already satisfied: setuptools<82 in ./miniforge3/lib/python3.12/site-packages (from torch>=1.13.0->peft) (80.9.0)
Requirement already satisfied: sympy>=1.13.3 in ./miniforge3/lib/python3.12/site-packages (from torch>=1.13.0->peft) (1.14.0)
Requirement already satisfied: networkx>=2.5.1 in ./miniforge3/lib/python3.12/site-packages (from torch>=1.13.0->peft) (3.6.1)
Requirement already satisfied: jinja2 in ./miniforge3/lib/python3.12/site-packages (from torch>=1.13.0->peft) (3.1.6)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in ./miniforge3/lib/python3.12/site-packages (from sympy>=1.13.3->torch>=1.13.0->peft) (1.3.0)
Requirement already satisfied: MarkupSafe>=2.0 in ./miniforge3/lib/python3.12/site-packages (from jinja2->torch>=1.13.0->peft) (3.0.3)
Requirement already satisfied: charset_normalizer<4,>=2 in ./miniforge3/lib/python3.12/site-packages (from requests->huggingface_hub>=0.25.0->peft) (3.4.4)
Requirement already satisfied: idna<4,>=2.5 in ./miniforge3/lib/python3.12/site-packages (from requests->huggingface_hub>=0.25.0->peft) (3.11)
Requirement already satisfied: urllib3<3,>=1.21.1 in ./miniforge3/lib/python3.12/site-packages (from requests->huggingface_hub>=0.25.0->peft) (2.5.0)
Requirement already satisfied: certifi>=2017.4.17 in ./miniforge3/lib/python3.12/site-packages (from requests->huggingface_hub>=0.25.0->peft) (2025.11.12)
Requirement already satisfied: regex!=2019.12.17 in ./miniforge3/lib/python3.12/site-packages (from transformers->peft) (2024.11.6)
Requirement already satisfied: tokenizers<0.22,>=0.21 in ./miniforge3/lib/python3.12/site-packages (from transformers->peft) (0.21.4)
Downloading peft-0.19.1-py3-none-any.whl (680 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 680.7/680.7 kB 12.3 MB/s  0:00:00
Installing collected packages: peft
Successfully installed peft-0.19.1
❯ financebench setup
financebench setup — one-time wizard.

[INFO] Using existing clone at /Users/rishabhkumar/.financebench/repo
Using repo at: /Users/rishabhkumar/.financebench/repo
[INFO] .env already exists at /Users/rishabhkumar/.financebench/repo/.env. Press
Enter at any prompt to keep the current value.
  OpenAI API key (required — embeddings + gpt-4o-mini)
  [current: ••••••yZMA] >
  Anthropic API key (required — Claude Sonnet generator)
  [current: ••••••-wAA] >
  Voyage API key (optional — voyage-finance-2 embeddings)
  [current: ••••••nSfu] >
  Groq API key (optional — free tier; falls back to OpenAI)
  [current: ••••••ubwn] >
[OK] .env saved at /Users/rishabhkumar/.financebench/repo/.env (63 keys set)
[INFO] Bringing up the stack: docker compose -f compose.minimal.yml up -d
[+] up 4/4
 ✔ Container repo-qdrant-1   Healthy                                        0.5s
 ✔ Container repo-redis-1    Healthy                                        0.5s
 ✔ Container repo-postgres-1 Healthy                                        0.5s
 ✔ Container repo-api-1      Running                                        0.0s
[OK] Containers started.
[INFO] Waiting for /v1/health (timeout 360s). First boot downloads the BGE
reranker (~570MB) and is the slowest step.
[OK] API healthy after 0s.
[OK] Models loaded.
[INFO] Collection 'financial_docs' already has 250 points — skipping seed. Pass
--force-seed to re-ingest.
[OK] Backend health: OK
╭─ Error ──────────────────────────────────────────────────────────────────────╮
│ Components failed to load:                                                   │
╰──────────────────────────────────────────────────────────────────────────────╯
  reranker: error: ModuleNotFoundError: No module named 'peft'
[OK] Qdrant collection 'financial_docs': 250 chunks

╭─ Error ──────────────────────────────────────────────────────────────────────╮
│ Setup completed with WARNINGS — chat may not work correctly. See the lines   │
│ above + `docker compose logs api` for details.                               │
╰──────────────────────────────────────────────────────────────────────────────╯
Tip: set FB_PROFILE=admin (or any name) in different terminals to keep separate
identities for the multi-party HITL demo.