c8e64bcd4b
Feature/align tin npi * Add merge_provider_info function to consolidate provider data into one-to-one results * Merge remote-tracking branch 'origin/main' into feature/align-tin-npi * Remove debug print statement from run_one_to_one_prompts function * turn run_regex_fields into an orchestrator function by breaking parts of it into separate functions * Remove unused import of get_matches function and add docstring to chunk_on_matches for clarity * Add docstring to run_regex_fields for improved clarity and documentation * fix provider name keys in merge_provider_info * Remove unused functions get_matches, tin_npi_prompt, and clean_tin_npi from tin_npi_funcs.py * Set provider name to "UNKNOWN" if cleaned name is empty in clean_provider_info * Add unit tests for clean_provider_info function to validate data processing * Enhance docstring for get_all_matches function * Add tests for get_all_matches and chunk_on_matches functions * Merge remote-tracking branch 'origin/main' into feature/align-tin-npi * Implement merge_provider_info function to consolidate provider data into one-to-one results * Refactor merge_provider_info to simplify list conversion for group and other provider information * Remove unnecessary TIN and NPI postprocessing step from postprocess function * Remove clean_tin_npi_other function and its invocation from postprocess function * Use json prompts for TIN/NPI/Name and inject them into TIN_NPI_TEMPLATE * Rename run_regex_fields to run_provider_info_fields * Enhance TIN_NPI_TEMPLATE to include detailed instructions for extracting provider entities and their identifying information, including IS_GROUP logic for main contracting parties. * moved TIN/NPI regexes to regex_patterns.py * Remove unnecessary blank line in investment_values.py * Remove debug print statements from run_provider_info_fields and get_provider_info functions * Enhance clean_provider_info to handle various representations of IS_GROUP as boolean * Enhance get_provider_info to include error handling for JSON parsing and ensure consistent return format Approved-by: Katon Minhas
Field Extraction
Running the Code
This project uses Python's module system for imports. To run the code properly:
-
DO NOT run files directly like this:
python src/client/main.py # ❌ This won't work -
INSTEAD, use Python's module flag (
-m) from the project root:python -m src.client.main # ✅ This is correct
Why?
The code uses absolute imports (e.g., from src.utils import llm_utils) to maintain a clear and consistent package structure. Running with python -m ensures Python can properly resolve these imports.
Development
- All imports should use the
src.prefix (e.g.,from src.utils import llm_utils) - Always run code from the project root directory using the
-mflag - Tests are configured to handle these imports automatically via pytest settings in pyproject.toml
Configuration
The project uses poetry for dependency management and pytest for testing. Key configurations in pyproject.toml:
[tool.pytest.ini_options]
pythonpath=["."]
testpaths = [
"tests"
]
Dependencies
To install dependencies:
poetry install
To run tests:
poetry run pytest
To run type checking:
poetry run mypy .