muffin2006/document-classification-env
1
1# π VISUAL GUIDE - HOW THE OPENENV WORKS2 3## π¬ Complete Agent Interaction Flow4 5```6ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ7β OPENENV DOCUMENT CLASSIFICATION ENVIRONMENT β8ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ9 10ββββββββββββββββββββ START EPISODE ββββββββββββββββββββ11 12 env.reset()13 β14 βΌ15 βββββββββββββββββββββββββββββββββββββββ16 β Generate Documents β17 β βββββββββββββββββββββββββββββββββ β18 β Easy: 100 documents β19 β Medium: 500 documents β20 β Hard: 1000 documents β21 β β22 β Categories: [5/10/20] β23 β Features: TF-IDF (100-dim) β24 βββββββββββββββββββββββββββββββββββββββ25 β26 βΌ27 βββββββββββββββββββββββββββββββββββββββ28 β Return Initial Observation β29 β βββββββββββββββββββββββββββββββββ β30 β { β31 β "document_id": "doc_000000", β32 β "content": "My invoice...", β33 β "word_count": [47], β34 β "features": [0.12, -0.34, ...], β35 β "document_index": [0], β36 β "total_documents": [100] β37 β } β38 βββββββββββββββββββββββββββββββββββββββ39 β40ββββββββββββββββββββ AGENT LOOP ββββββββββββββββββββ41 β42 βββ [ DOCUMENT 1 ]43 β β44 β βΌ45 β ββββββββββββββββββββββββββββββββββ46 β β Agent Analyzes Document β47 β β "My invoice shows error" β48 β β β Features: TF-IDF weights β49 β β β Decision: Category? β50 β ββββββββββββββββββββββββββββββββββ51 β β52 β βΌ53 β ββββββββββββββββββββββββββββββββββ54 β β Agent Decision β55 β β ββββββββββββββββββββββββββ β56 β β Possible Actions (Easy): β57 β β β’ 0 = General β58 β β β’ 1 = Billing ββ PREDICTED β59 β β β’ 2 = Support β60 β β β’ 3 = Technical β61 β β β’ 4 = HR β62 β β β63 β β Agent chooses: action = 1 β64 β ββββββββββββββββββββββββββββββββββ65 β β66 β βΌ67 β env.step(action=1)68 β β69 β βΌ70 β ββββββββββββββββββββββββββββββββββ71 β β Evaluate Decision β72 β β ββββββββββββββββββββββββββ β73 β β True Label: Billing (1) β β74 β β Predicted: Billing (1) β β75 β β Result: CORRECT! β76 β ββββββββββββββββββββββββββββββββββ77 β β78 β βΌ79 β ββββββββββββββββββββββββββββββββββ80 β β Calculate Reward β81 β β ββββββββββββββββββββββββββ β82 β β Correct: +1.0 β β83 β β Speed: +0.1 (< 100ms) β β84 β β βββββββββββββββββββββββββ β85 β β Total: +1.1 β86 β ββββββββββββββββββββββββββββββββββ87 β β88 β βΌ89 β ββββββββββββββββββββββββββββββββββ90 β β Update Episode Stats β91 β β ββββββββββββββββββββββββββ β92 β β Correct: 1/1 = 100% β93 β β Total Reward: 1.1 β94 β β Avg Reward: 1.1 β95 β ββββββββββββββββββββββββββββββββββ96 β β97 βββ [ DOCUMENT 2 ]98 β β99 β βΌ100 β ββββββββββββββββββββββββββββββββββ101 β β "I found a bug in system" β102 β β True Label: Technical (3) β103 β β Predicted: Support (2) β β104 β β ββββββββββββββββββββββββββ β105 β β Correct: -0.5 β β106 β β Speed: +0.1 β β107 β β Total: -0.4 β108 β β ββββββββββββββββββββββββββ β109 β β Accuracy: 1/2 = 50% β110 β ββββββββββββββββββββββββββββββββββ111 β β112 β βΌ113 β ... REPEATS FOR ALL DOCUMENTS ...114 β β115 βββ [ DOCUMENT N ]116 β β117 β βΌ118 β ββββββββββββββββββββββββββββββββββ119 β β Last Document β120 β β All predictions made β121 β β Episode complete! β122 β ββββββββββββββββββββββββββββββββββ123 β124ββββββββββββββββββββ END EPISODE ββββββββββββββββββββ125 β126 βΌ127 βββββββββββββββββββββββββββββββββββββββ128 β Episode Summary β129 β βββββββββββββββββββββββββββββββββ β130 β β’ Total Accuracy: 87/100 = 87% β131 β β’ Total Reward: 87.3 β132 β β’ Avg Time/Doc: 50ms β133 β β’ Final Score: 0.87 (Easy) β134 β βββββββββββββββββββββββββββββββββ β135 β Returns: β136 β - obs: empty (episode done) β137 β - reward: 0.0 β138 β - done: True β139 β - info: β140 β ββ episode_summary: {...} β141 βββββββββββββββββββββββββββββββββββββββ142 β143 βΌ144 Agent has learned from 100 documents!145 Ready for next episode or deployment.146```147 148---149 150## π Task Difficulty Progression151 152```153EASY (BASELINE: 0.78)154ββββββββββββββββββββββββββββββββββ155β Categories: 5 (Simple) β156β ββ General β157β ββ Billing β158β ββ Support β159β ββ Technical β160β ββ HR β161β β162β Documents: 100 (Pre-processed) β163β Time Limit: None β164β Challenge Level: β β165β Training Time: 1-2 seconds β166ββββββββββββββββββββββββββββββββββ167 β168 β Difficulty increases169 βΌ170MEDIUM (BASELINE: 0.65)171ββββββββββββββββββββββββββββββββββ172β Categories: 10 (Detailed) β173β ββ General β174β ββ Billing β175β ββ Billing-Dispute β NEW β176β ββ Support β177β ββ Technical β178β ββ Technical-Bug β NEW β179β ββ HR-Payroll β180β ββ HR-Benefits β181β ββ Legal β182β ββ Executive β183β β184β Documents: 500 (Raw text) β185β Time Limit: 2 seconds/doc β186β Challenge Level: ββ β187β Training Time: 10-15 seconds β188ββββββββββββββββββββββββββββββββββ189 β190 β Difficulty increases191 βΌ192HARD (BASELINE: 0.52)193ββββββββββββββββββββββββββββββββββ194β Categories: 20 (Fine-grained) β195β ββ General β196β ββ Billing / Billing-Dispute β197β ββ Billing-Refund β NEW β198β ββ Support-Urgent / Support- β199β β Normal β NEW (split) β200β ββ Technical / Technical-Bug β201β ββ Technical-Feature β NEW β202β ββ HR (3 variants) β203β ββ Legal (3 variants) β204β ββ Executive (2 variants) βNEW β205β ββ Finance β NEW β206β ββ Marketing β NEW β207β ββ Operations β NEW β208β β209β Documents: 1000 (Complex) β210β Time Limit: 1 second/doc β211β Challenge Level: βββ β212β Training Time: 30-60 seconds β213β Speed-Accuracy Tradeoff: YES β214ββββββββββββββββββββββββββββββββββ215```216 217---218 219## π Scoring System Visualization220 221```222βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ223β EASY TASK SCORING β224βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€225β Calculation: SCORE = ACCURACY β226β β227β Example: 87 correct out of 100 β228β ββββββββββββββββββββββββββββββββββββββββββββββββ β229β Score = 87 / 100 = 0.87 β230β β231β Interpretation: β232β 1.0 ββββββββββββββββββββ Perfect β233β 0.9 ββββββββββββββββββββ Excellent β234β 0.8 ββββββββββββββββββββ Good ββ 0.87 (HERE) β235β 0.7 ββββββββββββββββββββ Fair β236β 0.6 ββββββββββββββββββββ Poor β237β 0.5 ββββββββββββββββββββ Baseline β238β 0.0 ββββββββββββββββββββ Random β239βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ240 241βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ242β MEDIUM TASK SCORING β243βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€244β Calculation: SCORE = 0.8 Γ ACCURACY + 0.2 Γ SPEED β245β β246β Example: β247β Accuracy = 68% β248β Processing Time = 140ms (within 2s limit) β 0.15 β249β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β250β Score = 0.8 Γ 0.68 + 0.2 Γ 0.15 β251β Score = 0.544 + 0.03 = 0.574 β252β β253β (Without speed bonus it would be 0.544) β254βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ255 256βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ257β HARD TASK SCORING β258βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€259β Calculation: SCORE = 0.75 Γ ACCURACY + 0.25 Γ SPEED β260β β261β Example: β262β Accuracy = 73% (1000 docs, this is hard!) β263β Processing Time = 95ms (< 100ms) β 0.20 bonus β264β ββββββββββββββββββββββββββββββββββββββββββββββββββββ β265β Score = 0.75 Γ 0.73 + 0.25 Γ 0.20 β266β Score = 0.5475 + 0.05 = 0.5975 β267β β268β Speed is MORE valued in hard task (tradeoff) β269βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ270```271 272---273 274## π° Reward Mechanics275 276```277CORRECT CLASSIFICATION278βββββββββββββββββββββββ279β Accuracy: +1.0 β280βββββββββββββββββββββββ281 +282βββββββββββββββββββββββ ββββββββββββββββββββββββββββ283β Speed Bonus: ββββββΆβ Easy: +0.1 (< 100ms) β284β β β Medium: +0.15 (< 200ms) β285β β β Hard: +0.2 (< 100ms) β286βββββββββββββββββββββββ ββββββββββββββββββββββββββββ287 β288 βΌ289 +1.1 to +1.2 Reward β290 291ββββββββββββββββββββββββββββββββββββββββ292 293INCORRECT CLASSIFICATION294βββββββββββββββββββββββ295β Accuracy: -0.5 β296βββββββββββββββββββββββ297 +298βββββββββββββββββββββββ ββββββββββββββββββββββββββββ299β Speed Bonus: ββββββΆβ Easy: +0.1 (< 100ms) β300β β β Medium: +0.15 (< 200ms) β301β β β Hard: +0.2 (< 100ms) β302βββββββββββββββββββββββ ββββββββββββββββββββββββββββ303 β304 βΌ305 -0.4 to -0.3 Reward β306 307ββββββββββββββββββββββββββββββββββββββββ308 309EPISODE REWARD ACCUMULATION (100 documents, Easy)310ββββββββββββββββββββββββββββββββββββββββββββββββ311β Doc 1: +1.1 β Total: 1.1 Acc: 100% β312β Doc 2: -0.4 β Total: 0.7 Acc: 50% β313β Doc 3: +1.1 β Total: 1.8 Acc: 67% β314β Doc 4: +1.1 β Total: 2.9 Acc: 75% β315β ... β316β Doc 87: +1.1 β Total: 87.3 Acc: 87% β ββ Final317β Doc 88: -0.4 β Total: 86.9 Acc: 86.36% β318β ... β319β Doc100: +1.1 β Total: 87.3 Acc: 87% β320β β321β Average Reward = 87.3 / 100 = 0.873 β322β Final Score = 0.87 β323ββββββββββββββββββββββββββββββββββββββββββββββββ324```325 326---327 328## π Document Feature Representation329 330```331Document Text332 β333 βΌ334"I was overcharged on my last invoice"335 β336 β (TF-IDF Vectorizer)337 β Extract important words338 βΌ339[word_weights: 100 dimensional vector]340 β341 β Common words (low importance):342 β "I", "on", "my" β near 0343 β344 β Important words (high importance):345 β "overcharged" β 0.45 (rare, specific)346 β "invoice" β 0.52 (rare, specific)347 β "billing" β 0.38 (related, important)348 β349 βΌ350[-0.02, 0.45, 0.52, -0.01, ..., 0.38] ββ Fed to agent351 (100 dimensions total)352 β353 βΌ354Agent Neural Net:355 Input: [100 features]356 βΌ357 Hidden Layer 1: Learns feature combinations358 βΌ359 Hidden Layer 2: Learns category patterns360 βΌ361 Output: [5/10/20 category logits]362 βΌ363 Softmax: Probability distribution364 βΌ365 ArgMax: Best category366 βΌ367 Action: Category index (0-4, 0-9, or 0-19)368 β369 βΌ370Decision: "This is BILLING (category 1)"371```372 373---374 375## π― Agent Learning Process376 377```378Episode 1: Random Guessing379ββββββββββββββββ380β Accuracy: 20%β ββ 1 in 5 correct (random)381β Score: 0.20 β382ββββββββββββββββ383 β384 βΌ385Agent learns: Document contains "invoice" β likely Billing386 387 β388 βΌ389Episode 2-5: Learning Keywords390ββββββββββββββββ391β Accuracy: 45%β ββ Better than random392β Score: 0.45 β393ββββββββββββββββ394 β395 βΌ396Agent learns: Category combinations, priority397 398 β399 βΌ400Episode 6-20: Pattern Recognition401ββββββββββββββββ402β Accuracy: 75%β ββ Strong signal learning403β Score: 0.75 β404ββββββββββββββββ405 β406 βΌ407Agent learns: Subtle distinctions, edge cases408 409 β410 βΌ411Episode 21+: Expert Level412ββββββββββββββββ413β Accuracy: 87%β ββ Near human performance414β Score: 0.87 β415ββββββββββββββββ416 β417 βΌ418Agent learns: Rare cases, complex routing419 420 β421 βΌ422Final: Deployed423```424 425---426 427## π Full Example: One Complete Classification428 429```430STEP 1: Document Arrives431ββββββββββββββββββββββββββββββββββββ432β Email: "I was charged twice for β433β my order #5432. Please refund β434β one charge immediately!" β435ββββββββββββββββββββββββββββββββββββ436 437STEP 2: Features Extracted438ββββββββββββββββββββββββββββββββββββ439β Tokenized: ["charged", "twice", β440β "order", "refund", "immediately"]β441β β442β TF-IDF Vector: 100-dimensional β443β [0.45, 0.38, 0.52, 0.41, ...] β444ββββββββββββββββββββββββββββββββββββ445 446STEP 3: Agent Processes447ββββββββββββββββββββββββββββββββββββ448β Input: Feature vector β449β Process: Neural network inferenceβ450β Logits: [0.1, 0.9, 0.3, ...] β451β Probabilities: β452β General: 5% β453β Billing-Dispute: 85% ββ MAX β454β Support: 10% β455ββββββββββββββββββββββββββββββββββββ456 457STEP 4: Decision Made458ββββββββββββββββββββββββββββββββββββ459β Selected Category: β460β action = 2 (Billing-Dispute) β461β β462β Reasoning: β463β β’ "charged" + "twice" = dispute β464β β’ "refund" = compensation claim β465β β’ "immediately" = urgent tone β466ββββββββββββββββββββββββββββββββββββ467 468STEP 5: Evaluation469ββββββββββββββββββββββββββββββββββββ470β Ground Truth: Billing-Dispute β471β Prediction: Billing-Dispute β472β Result: β CORRECT β473β β474β Reward: β475β β’ Accuracy: +1.0 β476β β’ Speed (45ms): +0.1 β477β β’ Total: +1.1 β478ββββββββββββββββββββββββββββββββββββ479 480STEP 6: Routing481ββββββββββββββββββββββββββββββββββββ482β Route to Department: β483β β Billing Team β484β β Dispute Resolution Sub-team β485β β Priority: High β486β β487β Action Taken: Email forwarded β488β Learning: Agent improved score β489ββββββββββββββββββββββββββββββββββββ490```491 492---493 494## π Performance Benchmarks495 496```497Baseline Agent Performance Across Tasks:498 499Easy Task (5 categories)500βββββββββββββββββββββββββββββββββββ501β Accuracy: 78% βββββββββ β502β Reward: 0.83 β503β Time: 48ms β504β Score: 0.78 β505βββββββββββββββββββββββββββββββββββ506 ββ Why 78%? Keyword matching507 β works well for simple cases508 ββ Gap to perfect: 22%509 510Medium Task (10 categories)511βββββββββββββββββββββββββββββββββββ512β Accuracy: 68% ββββββββββ β513β Reward: 0.71 β514β Time: 150ms β515β Score: 0.65 β516βββββββββββββββββββββββββββββββββββ517 ββ Why 68%? More categories,518 β harder to distinguish519 ββ Gap to target (0.85): 20%520 521Hard Task (20 categories)522βββββββββββββββββββββββββββββββββββ523β Accuracy: 55% βββββββββββββ β524β Reward: 0.57 β525β Time: 100ms β526β Score: 0.52 β527βββββββββββββββββββββββββββββββββββ528 ββ Why 55%? Complex routing,529 β tight time constraints530 ββ Gap to target (0.75): 23%531 532Expected ML Model Performance:533βββββββββββββββββββββββββββββββββββ534β Easy: 0.95+ (Expert) β535β Medium: 0.85+ (Strong) β536β Hard: 0.75+ (Capable) β537βββββββββββββββββββββββββββββββββββ538```539 540---541 542## π Summary543 544```545βββββββββββββββββββββββββββββββββββββββββββββββββββββββ546β COMPLETE OPENENV DOCUMENT CLASSIFICATION SYSTEM β547βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€548β β549β INPUT: Documents + Content + Features β550β βΌ β551β PROCESS: TF-IDF β Agent Decision β Evaluation β552β βΌ β553β OUTPUT: Score (0.0-1.0) + Feedback β554β β555β RESULT: Agents learn to route documents! β556β β557βββββββββββββββββββββββββββββββββββββββββββββββββββββββ€558β Ready to deploy and test! β559βββββββββββββββββββββββββββββββββββββββββββββββββββββββ560```561 