AstroWay/api v2.325.2 · hi
सभी सिस्टम सामान्य हैं

हम सटीकता को नियंत्रण में कैसे रखते हैं: swetest और NASA के विरुद्ध CI

किसी एस्ट्रो API की सटीकता एफ़ेमेरिस कोड के एक ही रिफ़ैक्टरिंग से आसानी से बिगड़ सकती है। हम सुरक्षा के तरीके को समझाते हैं: ऐप और API के लिए एक ही Swiss Ephemeris कोर, संदर्भ कुंडलियों पर सैकड़ों फ़्रीज़ किए गए स्नैपशॉट, और हर PR का swetest CGI, Kerykeion, Prokerala तथा NASA ग्रहण कैटलॉग के विरुद्ध ट्रायंगुलेशन।

सटीकता वह चीज़ है जिसे उपयोगकर्ता चुपचाप Astrodienst पर आपसे मिलाकर जाँचता है। अगर जन्म कुंडली में एक आर्कमिनट का भी अंतर आया, तो शिकायत जल्दी आ जाएगी। और सबसे बुरी बात यह है कि सटीकता को बिना किसी के ध्यान दिए तोड़ना आसान है: एफ़ेमेरिस कोड में एक रिफ़ैक्टरिंग, और आधे एंडपॉइंट चुपचाप कुछ आर्कसेकंड खिसक जाते हैं।

हम इसे होने से ऐसे रोकते हैं।

दो वातावरणों के लिए एक कोर

Section titled “दो वातावरणों के लिए एक कोर”

ग्रहों की स्थितियाँ Swiss Ephemeris गणना करता है। मुख्य बात: हमारे ऐप और API में एक ही गणना कोर है, एक ही कोडबेस। ऐसे दो इम्प्लीमेंटेशन नहीं हैं जो अलग-अलग नतीजे दे सकें, इसलिए अंतर आने की कोई गुंजाइश नहीं।

एफ़ेमेरिस की मुख्य रेंज से बाहर की तारीखों के लिए एक विश्लेषणात्मक fallback (Moshier) है, थोड़ा कम सटीक, लेकिन सीमाओं पर बिना किसी टूटन के। सोची-समझी ईमानदारी: हम इंजन का कोई विशेष वर्ज़न सार्वजनिक रूप से घोषित नहीं करते, क्योंकि कोर का वास्तविक वर्ज़न नवीनतम upstream से पुराना है, और एक बड़ा आँकड़ा लिखना झूठ होता।

फ़्रीज़ किए गए स्नैपशॉट

Section titled “फ़्रीज़ किए गए स्नैपशॉट”

हर गणना एंडपॉइंट के पास फ़्रीज़ किए गए स्नैपशॉट का एक सेट है: इस बिल्ड के समय 888 JSON फ़िक्स्चर। रनर एंडपॉइंट को संदर्भ कुंडलियों पर चलाता है और परिणाम को फ़िक्स्चर से बाइट-दर-बाइट (टॉलरेंस के भीतर) मिलाता है। ग्रहों के भोगांश में 5e-5° (0.18″) से अधिक का कोई भी विचलन टेस्ट को फ़ेल कर देता है।

संदर्भ कुंडलियाँ इस तरह चुनी गई हैं कि वे किनारों को परखें, सिर्फ़ “सुविधाजनक” बीच वाले मामलों को नहीं:

  • Monroe, Diana, Einstein, Bowie: ज्ञात जन्म विवरण वाली ऐतिहासिक कुंडलियाँ
  • ध्रुवीय अक्षांश: जहाँ भाव पद्धतियाँ विकृत हो जाती हैं
  • भूमध्यरेखीय: जहाँ वे अलग तरह से व्यवहार करती हैं
  • दक्षिणी गोलार्ध: प्रतिबिंब (mirroring) की जाँच

सीमांत मामले ठीक वही रिग्रेशन पकड़ते हैं जो किसी सामान्य कीव निवासी की कुंडली पर दिखाई नहीं देते।

बाहरी स्रोतों के विरुद्ध ट्रायंगुलेशन

Section titled “बाहरी स्रोतों के विरुद्ध ट्रायंगुलेशन”

स्नैपशॉट खुद के सापेक्ष रिग्रेशन पकड़ते हैं। पूर्ण सत्य जाँचने के लिए हर रिलीज़ को स्वतंत्र स्रोतों से मिलाया जाता है:

किसके विरुद्धक्या जाँचता हैअंतर
swetest CGI (Astrodienst)ग्रहों के भोगांश, भाव कस्प्स0.000″
Kerykeion (Python, pyswisseph)SwEph का स्वतंत्र इम्प्लीमेंटेशन< 0.2″
Prokerala (sidereal Lahiri)सायन के बजाय निरयन (sidereal) स्थितियाँ8-17″, अयनांश फ़ॉर्मूले का व्यवस्थित अंतर, इंजन का नहीं
NASA 5-Millennium Eclipse Catalogग्रहणों का समय और प्रकार< 1 मिनट

Prokerala से अंतर कोई त्रुटि नहीं है: ये Lahiri फ़ॉर्मूले के अलग-अलग इम्प्लीमेंटेशन हैं, और हम इसे छिपाने के बजाय स्पष्ट रूप से दस्तावेज़ित करते हैं। swetest के साथ, जो उद्योग का मानक है, ड्रिफ़्ट शून्य है।

एस्ट्रोकार्टोग्राफ़ी रेखाओं को अलग से ज्यामितीय रूप से जाँचा जाता है: भूमध्य रेखा पर सटीकता 1.5 किमी से बेहतर है।

हर PR पर क्या चलता है

Section titled “हर PR पर क्या चलता है”

सटीकता एक CI-gate है, एक बार की जाँच नहीं:

  • api-accuracy.yml: बैकएंड कोड के हर PR पर स्नैपशॉट का पूरा सेट + ट्रायंगुलेशन चलाता है। लाल टेस्ट merge को रोक देता है।
  • check-eclipse-accuracy.yml: साल में एक बार ग्रहणों को NASA कैटलॉग से मिलाता है; सीमा से अधिक अंतर होने पर अपने आप issue बनता है।
  • check-sweph-updates.yml: हर हफ़्ते upstream Swiss Ephemeris पर नज़र रखता है; नया वर्ज़न आने पर समीक्षा के लिए issue बनता है, बिना auto-merge के (एफ़ेमेरिस इंजन का अपडेट auto-update के लिए बहुत संवेदनशील चीज़ है)।

इंटीग्रेटर को इससे क्या मिलता है

Section titled “इंटीग्रेटर को इससे क्या मिलता है”

गारंटी सरल है: ग्रहों की स्थितियाँ संदर्भ Swiss Ephemeris से < 0.1 आर्कसेकंड के भीतर हैं, और यह सीमा ऑटोमेशन से सुरक्षित है, README में किए वादे से नहीं। अगर कभी कोई रिग्रेशन आता है, तो वह हमारे CI में फ़ेल होगा, आपके उपयोगकर्ता की शिकायत में नहीं।

इन आँकड़ों का सार्वजनिक संस्करण, विशिष्ट कुंडलियों पर अंतर की तालिका के साथ, सटीकता पृष्ठ पर है।

MakSeong · AstroWay

मैं AstroWay API को बनाता हूँ: मैं आर्क-सेकंड तक सटीक ज्योतिषीय गणित को साफ़ REST में लोड करता हूँ और उसके बारे में जानकारी को लिखता हूँ जो वास्तव में महत्वपूर्ण है।

// इस पर बनाएं

आर्क-सेकंड तक सटीक पोज़िशन, बस 4 लाइनों के कोड में।

कार्ड के बिना मुफ्त कुंजी। पहले भुगतान तक 5,000 कॉल प्रति माह।

ब्लॉग से और सभी पोस्ट →

Engineering 2026-07-15

तीन आधिकारिक SDK: TypeScript, Python, PHP कच्चे curl के बजाय

कच्चा HTTP काम करता है, लेकिन टाइप किया गया क्लाइंट घंटों की बचत करता है: पथ स्वत: पूर्णता, अनुरोध और प्रतिक्रिया प्रकार, 408/409/429/5xx के लिए बनाए गए रीट्री और स्टेनलेस-स्टाइल त्रुटि श्रेणी। हम तीन आधिकारिक SDK - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - की जांच करते हैं और यह कैसे एक ओपनएपीआई अनुबंध से उत्पन्न होते हैं।

Industry 2026-06-05

Free Astrology API: Which One Has the Best Free Tier in 2026?

A side-by-side of free tiers across the major astrology APIs - credits, request caps, card requirements - and how much you can actually build for free.

Engineering 2026-06-05

Horoscope API Tutorial: Build a Daily Horoscope Feature

Add daily, weekly and monthly horoscopes to your app via API - sign-based text vs transit-based personalization - with TypeScript and Python code.