How alkhrzmy/si-foren works
SI-FOREN is a procurement-market intelligence application for investigating vendors and presenting tender conversion, bidding-price, incumbent, co-bidding, and strategic-advisory results. A user submits a query through the Gradio app; the supervisor coordinates validation and deterministic SQL/graph analysis, assembles a dossier, and the app renders the results. The README documents broader dashboard capabilities; sampled excerpts confirm the analysis tools and some rendering paths, but not every UI or advisory call detail, so uncertain wiring is omitted.
Main entry points: supervisor.py Investigation Supervisor · app.py Gradio Dashboard · sql_duckdb.py DuckDB Analytics · llm_client.py LLM Client
Components 14
User Interface
- Gradio Dashboard
app.py
Investigation Orchestration
- Investigation Supervisor
src/agents/supervisor.py - Query Gatekeeper
src/guardrails/llm_gatekeeper.py - Investigation Dossier
src/state.py
Procurement Analytics
- DuckDB Analytics
src/tools/sql_duckdb.py - Co-Bidding Network
src/tools/graph_network.py
Strategic Advisory
- LLM Client
src/llm_client.py - Hugging Face Inference
- Local LLM Proxy
Local Data
- Tender Packages
data/paket.parquet - Tender Participants
data/peserta.parquet - Tender Winners
data/pemenang.parquet - Co-Bid Graph Data
data/vendor_cobid_graph.gexf
Other components
- Analyst
Connections 18
- Analyst → Gradio Dashboard: submits query
- Gradio Dashboard → Investigation Supervisor: starts investigation
- Investigation Supervisor → Query Gatekeeper: validates query
- Query Gatekeeper → LLM Client: classifies intent
- LLM Client → Hugging Face Inference: requests inference
- LLM Client → Local LLM Proxy: fallback inference
- Investigation Supervisor → DuckDB Analytics: queries vendor data
- Investigation Supervisor → Co-Bidding Network: retrieves partners
- DuckDB Analytics → Tender Packages: reads
- DuckDB Analytics → Tender Participants: reads
- DuckDB Analytics → Tender Winners: reads
- Co-Bidding Network → Co-Bid Graph Data: loads graph
- Investigation Supervisor → LLM Client: requests advisory
- Investigation Supervisor → Investigation Dossier: assembles dossier
- Investigation Supervisor → Gradio Dashboard: returns dossier
- Gradio Dashboard → DuckDB Analytics: queries partner links
- Gradio Dashboard → Co-Bidding Network: renders network
- Gradio Dashboard → Analyst: displays analysis