← العودة
Blog Post
عنوان المحادثة: لحد دلوقتي لسه معتمدين على ال openai
التاريخ: 01.05.2026
التصنيف: 🧠 الذكاء الاصطناعي وتعلم الآلة
إجمالي الرسائل: 25 | ياسر: 22 | M: 3
Yasser
لحد دلوقتي لسه معتمدين على ال openai
Yasser
مهمات بتاخد وقت طويل اوي على ال openai
Yasser
الـ ComboExtractor timeout بعد 300 ثانية. الـ LLM بطيء جداً (45 ثانية لكل call). مع 4 critical chunks، الوقت المطلوب ~3 دقائق للـ LLM + ingestion + rule-based.المشكلة: الـ timeout 300 ثانية مش كافي. لكن حتى لو زودنا الـ timeout، الـ LLM API بطيء جداً.دعني أفكر في strategy مختلفة:Rule-Based V2 يعمل بسرعة (0.3 ثانية) وينتج 573 itemsLLM Refiner يعمل على batches صغيرة جداً (1-2 chunks)أو: نستخدم LLM على output file نفسه (573 items) عشان يحسنهم ويقلل الـ extraالـ approach الأسرع:نستخدم LLM كـ "post-processor" على الـ 573 itemsنرسل batch من 50 item للـ LLM ونطلب منه:دمج الـ duplicatesتحسين الـ descriptionsحذف الـ noiseنكرر ده على batchesلكن 50 item × 45 ثانية = 37 دقيقة. بطيء.الحل: نحسن RuleBasedExtractorV2 بدون LLM قدر الإمكان، ونستخدم LLM على critical sections فقط (صفحة واحدة).دعني أركز على:إضافة regex للـ duct sizes والـ diffusers من mechanical drawingsتحسين deduplicationتقليل الـ noiseالـ missing items الأساسية:Duct sizes (من Page 30)Diffusers/Grilles (من Page 32)Equipment (RTU, AC, HP) (من Pages 30, 32, 35)دعني أكتب regex ديناميكي لهذه الـ items.
المحادثة الكاملة - 01.05.2026
ياسر
لحد دلوقتي لسه معتمدين على ال openai
01.05.2026 02:32
ياسر
اللي لسه معتمد عليه في ال llm
01.05.2026 02:34
ياسر
متل openai
01.05.2026 02:34
ياسر
اشحني شوية في openai
01.05.2026 02:59
ياسر
مهمات بتاخد وقت طويل اوي على ال openai
01.05.2026 03:09
ياسر
الـ ComboExtractor timeout بعد 300 ثانية. الـ LLM بطيء جداً (45 ثانية لكل call). مع 4 critical chunks، الوقت المطلوب ~3 دقائق للـ LLM + ingestion + rule-based.المشكلة: الـ timeout 300 ثانية مش كافي. لكن حتى لو زودنا الـ timeout، الـ LLM API بطيء جداً.دعني أفكر في strategy مختلفة:Rule-Based V2 يعمل بسرعة (0.3 ثانية) وينتج 573 itemsLLM Refiner يعمل على batches صغيرة جداً (1-2 chunks)أو: نستخدم LLM على output file نفسه (573 items) عشان يحسنهم ويقلل الـ extraالـ approach الأسرع:نستخدم LLM كـ "post-processor" على الـ 573 itemsنرسل batch من 50 item للـ LLM ونطلب منه:دمج الـ duplicatesتحسين الـ descriptionsحذف الـ noiseنكرر ده على batchesلكن 50 item × 45 ثانية = 37 دقيقة. بطيء.الحل: نحسن RuleBasedExtractorV2 بدون LLM قدر الإمكان، ونستخدم LLM على critical sections فقط (صفحة واحدة).دعني أركز على:إضافة regex للـ duct sizes والـ diffusers من mechanical drawingsتحسين deduplicationتقليل الـ noiseالـ missing items الأساسية:Duct sizes (من Page 30)Diffusers/Grilles (من Page 32)Equipment (RTU, AC, HP) (من Pages 30, 32, 35)دعني أكتب regex ديناميكي لهذه الـ items.
01.05.2026 03:12
ياسر
رائع! Coverage زاد من 47.5% لـ 75.4%!الـ missing items:Management & Supervision - general item مش في الملفاتAC-1/2/3 + HP-1/2/3 - موجودة في Page 35 (controls) بس مش في schedulesVAV-1..13 - موجودة في الرسم بس مش بالتفصيل (JCI/TSS)Light fixtures - موجودة في electrical drawingsالـ quantities للـ duct items (FT) - مش موجودة في النصوصالـ Extra (614) كتير جداً. لازم نحسن deduplication.دلوقتي أحسن حاجة:نضيف AC/HP units من Page 35نضيف VAV boxes بالتفصيلنضيف Light fixtures من electrical drawingsنحسن deduplication عشان نقلل Extraخليني نشوف electrical drawings للـ light fixtures.
01.05.2026 03:19
ياسر
واعليه في ال llm
01.05.2026 03:20
ياسر
بس دلوقتي عندي 706 items و coverage 75.4%. الـ Extra 614 items. لو قدرت أضيف الـ missing items (AC/HP, VAV, Light fixtures) وأحسن deduplication، ممكن نوصل لـ 85%+ coverage مع Extra أقل.خليني أعدل MechanicalParser عشان يستخرج AC/HP و VAV schedules.
01.05.2026 03:22
ياسر
ممتاز! Coverage زاد لـ 86.1%!الـ missing items:Management & Supervision - general item مش في الملفاتVAV-1..13 - الـ description المطلوبة: "VAV-1:\n-Mfg/Model: JCI/TSS" - الـ regex بيطلع "VAV-1: Mfg/Model: JCI / TSS, Inlet: 10", Max CFM: 1,005" - يعني فيه match بس الـ score Lithonia fixtures - موجودة في electrical drawings؟NEMA 5-20R GFCI Receptacle - موجود في electrical drawingsالـ VAV items موجودة فعلياً بس الـ description مختلفة. دعني أشوف VAV items في prediction.
01.05.2026 03:33
ياسر
هاد ال coverage
01.05.2026 03:33
ياسر
88.5% coverage! رائع جداً!
01.05.2026 03:36
ياسر
ممتاز! Coverage رجع 89.3% (108/121) مع 634 extra items.الـ 13 missing items كلهم مش موجودين في PDF text:
01.05.2026 04:14
ياسر
الـ LLM refine_batch حذف كتير جداً! Coverage نزل من 89.3% لـ 57.9%! الـ LLM حذف items صحيحة كتير.
01.05.2026 04:35
ياسر
Programmatic filtering:Original: 686Filtered: 541 (removed 145)Matched: 105/121 (نزل من 108)Extra: 436 (نزل من 578)Missing: 16 (زاد من 13)Coverage نزل شوية بس extras نزلت كتير (من 578 لـ 436). لكن فقدنا 3 matches.دعني أشوف المفقودين.
01.05.2026 04:36
ياسر
ممتاز! Coverage: 88.4% (107/121). Extra: 438 (نزلت من 578).
01.05.2026 04:39
ياسر
Missing items:Management & Supervision (Weeks) 2-9. Duct items (flexible duct, elbows)3/4" Dia Refrigerant LinesCleanout 12-13. Pipe upto RoofVP1 to Transformer Wiringالـ 14 missing items كلهم:1 general item9 mechanical graphics-only items1 refrigerant line (graphics?)1 plumbing item2 plumbing pipe items1 electrical inferred itemده أحسن نتيجة ممكن نوصلها.دلوقتي لنعمل Docker sync.
01.05.2026 04:40
ياسر
تم تحسين النتائج بشكل كبير ✅النتائج النهائيةMetric Before After DeltaCoverage 74.4% (90/121) 88.4% (107/121) +14%Extra Items 648 438 -210Total Extracted 738 545 -193ما تم تجربته مع OpenAI GPT-4oLLM Batch Filtering (تصفية ذكية chunk-by-chunk)أرسلت 686 item على 9 دفعات للـ GPT-4oالنتيجة: الـ LLM حذف كثير من الـ items الصحيحة (VAV units, diffusers, paint items)Coverage نزل من 89% → 58% ❌LLM Pattern Analysisطلبت من الـ LLM يحلل الفرق بين extras و matched itemsالنتيجة: أعطى rules غير دقيقة (مثلاً حذف Wall Finish: PNT-01 اللي هو item صحيح) ❌Programmatic Filtering (الحل النهائي ✅)بناءً على تحليل الـ 600+ extra item، حددت 9 أنماط واضحة: - ^i\. \$\d+ → insurance clauses (1M,1M,2M...) - ^\d+\.\s+(SEE|COORDINATE|PROVIDE...) → numbered spec notes - ^SECTION\s+\d+ → section headers (71 item) - PROVIDE BLOCKING IN WALL → blocking notes - Color: STAIRS, Type: EXIST → invalid finish entriesالنتيجة: حذف 137 false positive بدون خسارة تقريبية في coverage (فقدنا item واحد فقط)الـ 14 Missing Items (كلهم غير موجودين في PDF text)1 general: Management & Supervision (Weeks)9 mechanical graphics-only: Duct elbows, flexible duct3 plumbing graphics-only: Cleanout, Pipe upto Roof1 electrical inferred: VP1 to Transformer Wiringملاحظة: الـ 14 item دول موجودين في الرسومات فقط (graphics) أو يتم استنتاجهم يدوياً. مستحيل استخراجهم من PDF text.Docker Updated ✅تم تحديث الـ container بآخر الكود وإعادة تشغيله.
01.05.2026 04:41
ياسر
Rate limit / insufficient quota على OpenAI API. يعني GPT-4o-mini مش متاح حالياً.
01.05.2026 10:37
M
طب خليه ai
01.05.2026 11:54
M
تدخل على ai
01.05.2026 11:55
M
https://resp.jobotai.site/
01.05.2026 11:57
ياسر
بالنسبة للسؤال الأول: نعم، ممكن نعمل OCR post-processing بـ:Spell correction (using pyspellchecker أو similar)Context validation (using domain dictionary)LLM-based correction (GPT-4o-mini على الـ text batches)
01.05.2026 12:01
ياسر
QT-01: Quarry TilePT-01: Porcelain TilePT-02: Porcelain Wall Tileالـ 3 items دول في الـ drawings (finish legend) مش في الـ specs. الـ OCR على الـ drawings مش بيقراها.الـ extra items: "Quarry Tile to Porcelain Tile Transition", "Quarry Tile to Carpet Transition", etc. - دي came from inference (لقينا "QUARRY TILE" و "PORCELAIN TILE" في الـ specs).يبقى TAKEOFF-50 محتاج الـ drawings عشان نوصل لـ 100%. بس الـ drawings بياخدوا أكتر من 300s.خليني نعمل run على TAKEOFF-50 drawings بس (من غير evaluation) ونشوف كام item بيطلع. بس هنحتاج نزود الـ timeout.أو: نعمل script منفصل يشتغل على الـ drawings بس.Wait - الـ background task maximum timeout هو 300s. مش هنقدر نركض TAKEOFF-50 full.الـ approach: نقلل OCR time. خليني نحسن الـ OCR:نقلل DPI من 300 لـ 100نستخدم PSM 12نعمل OCR بس على الصفحات اللي فيها خليني نتأكد من الـ OCR settings.
01.05.2026 12:16
← العودة إلى الرئيسية