4 पॉइंट द्वारा ijustmaking 2026-02-24 | 3 टिप्पणियां | WhatsApp पर शेयर करें

Steve Yegge ने "Software Survival 3.0" में जिस "Insight Compression" की बात की थी — कि Git या Kubernetes में दशकों के trial-and-error का संपीड़न है, इसलिए LLM उन्हें आसानी से पुनर्निर्मित नहीं कर पाते — वहीं से यह सोच शुरू हुई कि साजु म्योंगनिहाक भी कुछ ऐसा ही है。

जब साजु को LLM के हवाले किया जाता है

आजकल की तरह अगर साजु डेटा को LLM में डालें, तो देखने में भरोसेमंद लगने वाले नतीजे मिलते हैं। समस्या "भरोसेमंद दिखने" और "सटीक होने" के बीच की दूरी है।

मैंने GPT-5, GPT-4o, Claude, DeepSeek V3 जैसे कई models पर structured output और few-shot को मिलाकर test किया। इसमें systematic error points दिखे। उदाहरण के लिए, Jongganggyeok (從強格) वाले साजु पर सिर्फ Eogbu (抑扶) logic लागू करके fire () को yongsin के रूप में निकाल देना। मूल ग्रंथ के "Choknogangsin Daehyung (觸怒強神 大凶)" सिद्धांत का उल्लंघन करने वाले ऐसे निर्णयों को prompt से पूरी तरह रोक पाना संभव नहीं था।

इसके अलावा, कुछ models किसी खास school of interpretation पर anchoring होकर मूल पाठ को विकृत कर देते थे, बुरी व्याख्या को जरूरत से ज़्यादा सुंदर बना देते थे, या उल्टा चिंता बढ़ाने वाली भाषा का इस्तेमाल करते थे। Rule-based judgement को LLM के pattern matching पर छोड़ना, arithmetic को language model से करवाने जैसी समस्या निकली।

Hojak engine: rules को code में, explanation को LLM में

इसीलिए मैंने layered architecture डिज़ाइन की।

Ho (Tiger) — rule engine. म्योंगनिहाक की calculation logic को code में implement किया गया। 5 प्रमुख शास्त्रीय मूल ग्रंथों — Jeokcheonsu, Japyeongjinjeon, Gungtongbogam, Sammyeongtonghoe, Yeonhaejapyeong — के बीच जहाँ व्याख्याएँ अलग होती हैं, वहाँ domain-by-domain यह तय किया गया कि किसे standard माना जाए, और उसी judgement को code में fix किया गया।

Jak (Magpie) — LLM explanation layer. इंजन द्वारा निकाले गए structured data को natural language में समझाने वाला हिस्सा ही LLM को सौंपा गया।

जिस चीज़ को LLM आसानी से reproduce नहीं कर पाते, वह code नहीं बल्कि हजारों वर्षों में तराशे गए judgement criteria थे।

जहाँ vibe coding की सीमा सामने आई

शुरुआत में सब smoothly चल रहा था। LLM ने Classical Chinese मूल ग्रंथों के analysis, schools की整理, और astronomical calculation code के draft तक तेज़ी से मदद की। सीमा वहाँ आई जहाँ अलग-अलग schools के rules आपस में टकराने लगे।

उदाहरण के लिए, Gyeokguk (格局) judgement में Jeokcheonsu पहले day stem की strength/weakness को देखता है, जबकि Japyeongjinjeon पहले month command के प्रकट होने को देखता है। एक ही साजु में किस मूल ग्रंथ का पालन किया जाए, उसके अनुसार judgement उलट जाने वाले case सामने आए, और यह priority तय करना LLM के बस की बात नहीं थी।

आखिरकार 5ों मूल ग्रंथों को सीधे जुटाकर उनका comparative verification करना पड़ा। कुछ हिस्से missing edition में थे या पढ़े नहीं जा रहे थे, इसलिए कई संस्करणों को cross-validate करना पड़ा। बाद में पता चला कि classical preservation पर national projects के तहत काफी काम हुआ है, लेकिन LLM की मदद के बिना यह काम किसी एक व्यक्ति के लिए संभालना मुश्किल था। मैंने लगभग 3 महीनों तक Claude Max x20 की limit भरपूर इस्तेमाल की।

दिलचस्प बात यह थी कि मूल पाठ की गलत प्रतिलिपि अधिकतर इंसानों (विद्वानों) की तरफ से निकली। Jeokcheonsu की पंक्ति "旺者宜泄, 唯有情有力者可克" को कैसे पढ़ा जाए, इससे algorithm की branching ही बदल जाती है, और इस मामले में LLM कई विद्वानों के अनुवाद और मूल टिप्पणियों का cross-comparison करने में उल्टा उपयोगी साबित हुआ।

समय की precision: 1 मिनट judgement बदल देता है

म्योंगनिहाक में समय का 1 मिनट का अंतर भी core judgement बदल सकता है। Jasi (子時) और Chuksi (丑時) की boundary पर time pillar बदल जाए, तो pattern judgement ही बदल जाता है।

Hojak engine NASA/JPL आधारित Fourier series equation of time (±13 सेकंड precision), IANA tzdata आधारित global DST judgement, और 163,400+ शहरों के longitude database को मिलाकर काम करता है। कोरिया के मामले में 1908 से अब तक standard longitude में 4 बदलाव और 12 साल की summer time history को reflect किया गया है।

Joseon युग की gwansanggam की आधिकारिक record Seoungwanji में वही longitude correction formula मिलना, जो मौजूदा code में है, मेरे लिए व्यक्तिगत रूप से काफी प्रभावशाली अनुभव था।

सत्यापन की स्थिति

Solar term calculation को Korea Astronomy and Space Science Institute (KASI) के 2000–2050 आधिकारिक data से मिलाया गया और 100% match मिला। Equation of time के लिए NASA/JPL Horizons आधारित ±13 सेकंड precision हासिल की गई। Shinsal का orthodox twelve shinsal (Sammyeongtonghoe आधारित) तय कर मानसेर्योक से मिलान किया गया और 100% match मिला, जबकि Gwiinsal और special shals को मूल ग्रंथों के cross-verification के बाद orthodox / disputed / reference, इन 3 स्तरों में वर्गीकृत कर लागू किया गया।

टेक स्टैक

इंजन Python FastAPI + PostgreSQL + SQLAlchemy 2.0(async) पर है, और frontend Next.js 15 + React 19 + TypeScript + Tailwind CSS पर। AI के लिए OpenRouter के जरिए multi-model (GPT-4o, Claude, DeepSeek V3) सिर्फ explanation layer में इस्तेमाल होते हैं। Deployment Fly.io (Blue-Green) + Vercel पर है, और payments Toss Payments + PayPal से होती हैं।

फिलहाल यह साजुपालजा analysis के लिए 30,000+ अक्षरों और annual analysis के लिए 20,000+ अक्षरों तक के structured reports बनाता है, और birth data encrypted form में store किया जाता है।

समाप्ति

म्योंगनिहाक की predictive validity पर अलग-अलग दृष्टिकोण हैं। यह project उस बहस से ज़्यादा इस engineering challenge पर केंद्रित रहा कि "अगर इस प्रणाली का उपयोग करना है, तो इसकी मूल मंशा के अनुसार सटीक मानदंडों के साथ और एकसमान तरीके से गणना की जाए।"

शुरुआत vibe coding से हल्के तरीके से हुई थी, लेकिन अंततः मुझे 5 प्रमुख मूल ग्रंथों का विश्लेषण करना पड़ा और NASA/JPL equation-of-time code तक देखना पड़ा। Yegge की भाषा में कहें तो, इस domain में compressed insight की density मेरी अपेक्षा से कहीं अधिक थी।

👉 1fate.ai/p/GEEK2026

तकनीकी सवालों या feedback का स्वागत है।

3 टिप्पणियां

 
khris 2026-02-26

दशा का दौर थोड़ा खराब लग रहा है, इसलिए थोड़ा उदास हूँ... आम तौर पर भाग्य-क्रम 시 일 월 년 के क्रम में होता है, लेकिन इस सेवा में यह उल्टा है, इसलिए थोड़ा भ्रमित करने वाला लगा। अगर इसके पीछे कोई खास मंशा नहीं है, तो क्या इसे सामान्य क्रम में बदलना ठीक रहेगा?

 
ijustmaking 2026-02-27

आपके बताने के तुरंत बाद मैंने इसे 시일월년 के regular order में बदल दिया। बीच में कुछ और काम चल रहा था, इसलिए deployment को अब जाकर एक साथ बाँधकर किया। धन्यवाद।

विश्लेषण करने पर देखा कि जिन लोगों की साजू में पहले से दिलचस्पी है, वे कंटेंट के साथ वास्तव में ज़्यादा गहराई से जुड़ते हैं, और service को भी ज़्यादा समय तक इस्तेमाल करते हैं। शुरुआत में "जो लोग साजू नहीं जानते, उनके लिए भी आसान" बनाने की चाह में मैंने order बदल दिया था, और वह गलत फैसला था। आपके feedback की बदौलत मैं दिशा तुरंत ठीक कर सका। एक बार फिर धन्यवाद।

 
ijustmaking 2026-02-26

आपने array order के बारे में जो कहा, वह सही है। शुरुआत में मैंने इसे इस तरह रखा था कि जिन लोगों को साजू की आदत नहीं है, वे अपनी जन्म-तिथि और समय को सहज रूप से समयक्रम (वर्ष-माह-दिन-समय) में देख सकें, लेकिन लगता है कि अपेक्षा से अधिक लोग पहले से ही साजू के पारंपरिक क्रम के अभ्यस्त हैं, इसलिए उल्टा इससे भ्रम हुआ होगा।

शास्त्रीय मूल ग्रंथों में भी समय-दिन-माह-वर्ष ही मानक क्रम है, इसलिए बदलाव पर सक्रिय रूप से विचार करूँगा। यह सचमुच बहुत ज़रूरी फ़ीडबैक था।
फ़ीडबैक देने के लिए धन्यवाद!

और आपने कहा कि अभी दायुन का समय आसान नहीं है, तो म्योंग्नि में दायुन एक बड़ा प्रवाह होता है, और उसके भीतर सेउन (歲運) के बदलाव आते हैं। कठिन दायुन के दौरान भी ऐसा समय ज़रूर आता है जब योंगशिन मिलता है, इसलिए आशा है कि उस समय आप अवसर को अच्छे से पकड़ेंगे।