इस प्रोजेक्ट के बारे में

zai-proxy एक Go-आधारित रिवर्स प्रॉक्सी है जो Z.AI Claude API के सामने बैठता है, और नंगे API एक्सेस में जो अवलोकनीयता और विश्वसनीयता सुविधाएँ नहीं होतीं, उन्हें जोड़ता है। इसमें दो मुख्य घटक शामिल हैं: एक प्रॉक्सी सेवा और एक निगरानी डैशबोर्ड। प्रॉक्सी पोर्ट 8080 पर सुनता है, अनुरोधों को अपस्ट्रीम LLM API पर अग्रेषित करता है, और /metrics पर Prometheus मेट्रिक्स निर्यात करता है। प्रमुख क्षमताओं में टोकन ट्रैकिंग (API-रिपोर्ट किए गए उपयोग या फ़ॉलबैक के रूप में tiktoken अनुमान का उपयोग करके प्रति अनुरोध इनपुट और आउटपुट टोकन की गिनती), अनुकूली दर सीमा (EWMA सीलिंग अनुमानक के साथ अपस्ट्रीम 429 प्रतिक्रियाओं को ट्रैक करना जो स्वचालित रूप से सीमा से ठीक नीचे रखता है और समय-समय पर सीलिंग वृद्धि के लिए जाँच करता है), और बिना बफरिंग के SSE स्ट्रीमिंग पास-थ्रू शामिल हैं। यह DEPLOYMENT_VARIANT लेबल के माध्यम से ब्लू/ग्रीन और कैनरी परिनियोजन का भी समर्थन करता है, जिससे प्रॉक्सी संस्करणों या मॉडल कॉन्फ़िगरेशन की साथ-साथ तुलना की जा सकती है। डैशबोर्ड एक Go बैकएंड है जिसमें React फ्रंटएंड है जो हर 5 सेकंड में प्रॉक्सी के Prometheus एंडपॉइंट को स्क्रैप करता है, बाउंडेड इन-मेमोरी रिंग्स में दोहरे-रिज़ॉल्यूशन स्नैपशॉट बनाए रखता है (24 घंटे के लिए 5-सेकंड रिज़ॉल्यूशन, 7 दिनों के लिए 1-मिनट रिज़ॉल्यूशन), और SSE के माध्यम से ब्राउज़र में अपडेट स्ट्रीम करता है। यह अनुरोध थ्रूपुट, विलंबता प्रतिशतक, टोकन उपयोग कुल, त्रुटि दर, और प्रति-वैरिएंट तुलना पैनल प्रदर्शित करता है। प्रॉक्सी Prometheus मेट्रिक्स का एक व्यापक सेट उजागर करता है जिसमें अनुरोध गणना, विलंबता हिस्टोग्राम, टोकन दर, त्रुटि दर, दर-सीमा प्रतीक्षा समय, पुनः प्रयास प्रयास, कार्यकर्ता उपयोग, और बिल्ड जानकारी शामिल हैं, सभी मॉडल और परिनियोजन वैरिएंट द्वारा लेबल किए गए हैं। कॉन्फ़िगरेशन पर्यावरण चर के माध्यम से संभाला जाता है जिसमें API कुंजी, लक्ष्य URL, दर सीमा पैरामीटर, कोटा पोलिंग, और पुनः प्रयास व्यवहार शामिल हैं।