8a872cdc67
Bugfix/unify prompt exhibit header
* Remove dead prompt_exhibit_header overrides and legacy get_exhibit_pages
Investigation (AST call tree analysis) proved both were dead code:
1. get_exhibit_pages() in preprocessing_funcs.py had ZERO callers in the
entire codebase. It was superseded by get_exhibit_pages_new() which is
the only live path (called by preprocess.one_to_n_exhibit_chunking).
2. Client prompt_exhibit_header overrides (2-arg) in bcbs_promise and
clover prompt_calls.py were dead for two independent reasons:
a) Their only consumer (get_exhibit_pages) has zero callers
b) The live consumer (get_exhibit_pages_new) calls with 3 args —
if the resolver returned the client 2-arg function, Python would
raise TypeError. The SaaS 3-arg version was always running.
Verification:
- Programmatic AST call tree (local_scripts/call_tree_analysis.py)
confirms zero callers and signature mismatch
- Resolver test confirms all clients resolve to SaaS 3-arg implementation
- Full unit suite: 1077 passed, 0 failures
- E2E: BCBS P…
* Merged dev into bugfix/unify_prompt_exhibit_header
* Add dev dependencies for local code index
Add tree-sitter, lancedb, and tiktoken as dev dependencies for a local
codebase indexing system. The index provides hybrid search (symbol table,
call graph, semantic embeddings, BM25) for token-efficient code exploration.
The index lives in a gitignored .index/ folder — each developer builds
their own locally.
Approved-by: Katon Minhas
64 lines
1.4 KiB
TOML
64 lines
1.4 KiB
TOML
[project]
|
|
name = "doczy-field-extraction"
|
|
version = "0.1.0"
|
|
description = "Contract field extraction using LLMs"
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
"pandas>=2.2.3",
|
|
"boto3>=1.35.40",
|
|
"anthropic>=0.36.0",
|
|
"python-dotenv>=1.0.1",
|
|
"psutil>=6.1.0",
|
|
"rapidfuzz>=3.10.1",
|
|
"pyxlsb>=1.0.10",
|
|
"openpyxl>=3.1.5",
|
|
"langchain>=0.3.14",
|
|
"langchainhub>=0.1.21",
|
|
"langchain-aws>=0.2.11",
|
|
"langchain-text-splitters>=0.3.5",
|
|
"langchain-community>=0.3.15",
|
|
"nltk>=3.9.1",
|
|
"rank-bm25>=0.2.2",
|
|
"sentence-transformers>=3.4.1",
|
|
"faiss-cpu>=1.10.0",
|
|
"word2number>=1.1",
|
|
"orjson>=3.10.16",
|
|
"pymupdf>=1.25.5",
|
|
"pillow>=11.2.1",
|
|
"xlsxwriter>=3.2.9",
|
|
"langchain-classic>=1.0.1",
|
|
"black[jupyter]>=25.12.0",
|
|
]
|
|
|
|
[dependency-groups]
|
|
dev = [
|
|
"mypy>=1.12.0",
|
|
"jupyter>=1.1.1",
|
|
"isort>=5.13.2",
|
|
"pytest>=8.3.3",
|
|
"pytest-mock>=3.14.0",
|
|
"tree-sitter>=0.25.2",
|
|
"tree-sitter-python>=0.25.0",
|
|
"lancedb>=0.30.2",
|
|
"tiktoken>=0.12.0",
|
|
]
|
|
test = [
|
|
"pytest>=8.3.3",
|
|
"pytest-mock>=3.14.0",
|
|
"pytest-cov>=6.0.0",
|
|
]
|
|
|
|
[tool.black]
|
|
line-length = 88
|
|
target-version = ['py312']
|
|
|
|
[tool.mypy]
|
|
disable_error_code = ["import-untyped","assignment","name-defined","call-arg","var-annotated","attr-defined","arg-type","return-value"]
|
|
exclude = ["scripts/"]
|
|
explicit_package_bases = true
|
|
|
|
[tool.pytest.ini_options]
|
|
pythonpath = ["."]
|
|
testpaths = ["src/tests"]
|