Project Intelligence Hub turns scattered project materials into grounded answers, captures missing knowledge, and generates reusable project one-pagers.
connectors: stage 1 ownership for doc, ppt, markdown, csv, and text intake.rag_pipeline: stage 2 ownership for chunking, vector-store-ready persistence, retrieval, citations, and low-token answering.gap_identification: stage 3 ownership for confidence gaps, SME routing, and manual knowledge capture.enterprise_ui: stage 4 ownership for welcome, chat, gap capture, one-pager, and governance.evaluation_one_pager: stage 5 ownership for one-pager output and evaluation exports.
data: local inputs, processed chunks, captured knowledge, indexes, metrics, and validation logs.scripts: Windows-friendly commands for local development and demos.main.py: central FastAPI entrypoint and orchestrator for all five stages.platform_models.py: shared API/data contracts used by all five stages.platform_storage.py: shared local JSON storage, metrics, and validation logging.docs/COLLABORATION_GUIDE.md: single folder map, API surface, demo path, and collaboration rules.
Copy-Item .env.example .env
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -e .[dev]Common commands:
make ingest
make api
make evalOn Windows without make, use the scripts in scripts/.
Run the POC:
.\.venv\Scripts\Activate.ps1
pip install -e .
.\scripts\run_api.ps1Open http://127.0.0.1:8000, ingest data/samples/ncl-platform.txt, then ask:
What solution did Blend360 deliver for NCL?
| Area | Owner |
|---|---|
| Connectors | connectors |
| RAG pipeline | rag_pipeline |
| Gap identification | gap_identification |
| Enterprise UI | enterprise_ui |
| Evaluation and one-pager | evaluation_one_pager |
Detailed member-by-member tasks, safe edit boundaries, and validation commands are in
docs/COLLABORATION_GUIDE.md.
- Load project files.
- Ask a question and show an answer with source citations.
- Ask an unanswerable question and show a clear gap.
- Capture a human-provided answer.
- Ask again and show that the captured answer persists.
- Generate one project one-pager from the available knowledge.
- Export test-set answers as CSV or JSON.
Validation checks are shown in the UI and appended to data/processed/validation_log.jsonl.
The runtime minimizes token usage by handling conversation locally and running retrieval before optional LLM synthesis.
Place additional test files in data/raw/test, then run:
.\scripts\ingest_test.ps1Test documents, chunks, and embeddings are written under data/processed/test and data/indexes/test.
The primary corpus is left unchanged, while chat retrieval and one-pager generation search both datasets.
ThinkAI works without an API key by returning grounded local evidence. To enable concise LLM synthesis,
copy .env.example to .env and set OPENAI_API_KEY. OpenAI-compatible local services are also supported:
PIH_LLM_PROVIDER=ollama
PIH_LLM_MODEL=llama3.2:3b
PIH_LLM_BASE_URL=http://127.0.0.1:11434/v1