5.9 KiB
Graph Report - /Users/gurpreet/Github/Odoo-Modules/fusion_accounts (2026-04-22)
Corpus Check
- 8 files · ~5,771 words
- Verdict: corpus is large enough that graph structure adds value.
Summary
- 54 nodes · 65 edges · 12 communities detected
- Extraction: 97% EXTRACTED · 3% INFERRED · 0% AMBIGUOUS · INFERRED: 2 edges (avg confidence: 0.8)
- Token cost: 0 input · 0 output
Community Hubs (Navigation)
- _COMMUNITY_Community 0
- _COMMUNITY_Community 1
- _COMMUNITY_Community 2
- _COMMUNITY_Community 3
- _COMMUNITY_Community 4
- _COMMUNITY_Community 5
- _COMMUNITY_Community 6
- _COMMUNITY_Community 7
- _COMMUNITY_Community 8
- _COMMUNITY_Community 9
- _COMMUNITY_Community 10
- _COMMUNITY_Community 11
God Nodes (most connected - your core abstractions)
AIBillExtractor- 14 edgesmessage_new()- 4 edgesFusionAccountsLog- 3 edgesResPartner- 3 edges_fa_match_vendor_from_email()- 2 edgesResConfigSettings- 2 edgesAccountMove- 1 edgesBlock the vendor from this log entry from email bill creation.- 1 edgesEnable the vendor from this log entry for email bill creation.- 1 edgesGet the OpenAI API key from settings.- 1 edges
Surprising Connections (you probably didn't know these)
- None detected - all connections are within the same source files.
Communities
Community 0 - "Community 0"
Cohesion: 0.21 Nodes (6): Extract bill data from email body and attachments using OpenAI. Args:, Get the OpenAI API key from settings., Strip HTML tags from text., Get the configured AI model., Check if AI extraction is enabled., Extract bill data using raw attachments from msg_dict. Raw attachments
Community 1 - "Community 1"
Cohesion: 0.23 Nodes (6): AIBillExtractor, Convert raw PDF bytes to base64 PNG images., Extract text from raw PDF bytes., Convert PDF attachment pages to base64 PNG images using PyMuPDF., Extract text content from PDF as fallback when image conversion fails., Get the max PDF pages to process.
Community 2 - "Community 2"
Cohesion: 0.29 Nodes (5): AccountMove, _fa_match_vendor_from_email(), message_new(), Apply AI-extracted data to a draft vendor bill. The PDF/invoice is the, Match AI-extracted vendor name to an Odoo partner. Tries multiple strat
Community 3 - "Community 3"
Cohesion: 0.29 Nodes (3): FusionAccountsLog, Block the vendor from this log entry from email bill creation., Enable the vendor from this log entry for email bill creation.
Community 4 - "Community 4"
Cohesion: 0.33 Nodes (3): Block selected vendors from email bill creation., Enable selected vendors for email bill creation., ResPartner
Community 5 - "Community 5"
Cohesion: 0.67 Nodes (1): ResConfigSettings
Community 6 - "Community 6"
Cohesion: 1.0 Nodes (0):
Community 7 - "Community 7"
Cohesion: 1.0 Nodes (0):
Community 8 - "Community 8"
Cohesion: 1.0 Nodes (0):
Community 9 - "Community 9"
Cohesion: 1.0 Nodes (1): Multi-level vendor matching from sender email. Tries three levels:
Community 10 - "Community 10"
Cohesion: 1.0 Nodes (1): Override to add vendor matching and blocking for incoming bills. When a
Community 11 - "Community 11"
Cohesion: 1.0 Nodes (1): Return statistics for the dashboard.
Knowledge Gaps
- 21 isolated node(s):
AccountMove,Multi-level vendor matching from sender email. Tries three levels:,Override to add vendor matching and blocking for incoming bills. When a,Block the vendor from this log entry from email bill creation.,Enable the vendor from this log entry for email bill creation.(+16 more) These have ≤1 connection - possible missing edges or undocumented components. - Thin community
Community 6(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 7(1 nodes):__init__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 8(1 nodes):__manifest__.pyToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 9(1 nodes):Multi-level vendor matching from sender email. Tries three levels:Too small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 10(1 nodes):Override to add vendor matching and blocking for incoming bills. When aToo small to be a meaningful cluster - may be noise or needs more connections extracted. - Thin community
Community 11(1 nodes):Return statistics for the dashboard.Too small to be a meaningful cluster - may be noise or needs more connections extracted.
Suggested Questions
Questions this graph is uniquely positioned to answer:
- Why does
AIBillExtractorconnectCommunity 1toCommunity 0,Community 2? High betweenness centrality (0.163) - this node is a cross-community bridge. - Why does
message_new()connectCommunity 2toCommunity 0? High betweenness centrality (0.062) - this node is a cross-community bridge. - Are the 2 inferred relationships involving
message_new()(e.g. with.extract_bill_data_from_raw()and.apply_extracted_data()) actually correct?message_new()has 2 INFERRED edges - model-reasoned connections that need verification. - What connects
AccountMove,Multi-level vendor matching from sender email. Tries three levels:,Override to add vendor matching and blocking for incoming bills. When ato the rest of the system? 21 weakly-connected nodes found - possible documentation gaps or missing edges.