"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > बाहरी रिपॉजिटरी के लिए पुल अनुरोध बनाना

बाहरी रिपॉजिटरी के लिए पुल अनुरोध बनाना

2024-11-08 को प्रकाशित
ब्राउज़ करें:458

Creating Pull Requests to External Repositories

इस सप्ताह का फोकस लैब 2 पर है, जिसमें एक पुल रिक्वेस्ट (पीआर) बनाकर उस रिपॉजिटरी में योगदान करना शामिल है जो मेरे पास नहीं है। मैंने काम करने के लिए एक सहपाठी के भंडार का चयन करके शुरुआत की। यह देखते हुए कि जावास्क्रिप्ट मेरी प्राथमिक प्रोग्रामिंग भाषा है, मैंने अपने वर्कफ़्लो को सुव्यवस्थित करने के लिए जावास्क्रिप्ट-आधारित रेपो का विकल्प चुना। हालाँकि मैं अन्य भाषाओं की खोज के लिए तैयार हूँ, लेकिन जेएस प्रोजेक्ट को चुनने से मेरा समय बच गया और मुझे अधिक आराम से काम करने का अवसर मिला। यह निर्णय फायदेमंद साबित हुआ, क्योंकि मैंने जो रिपॉजिटरी चुनी थी उसमें कुछ समस्याएं थीं जो इसे स्थानीय स्तर पर चलने से रोक रही थीं। इससे मुझे कोडबेस को समझने और इसकी चुनौतियों से निपटने में मदद मिली। यहां प्रक्रिया का विस्तृत विवरण दिया गया है:

सहपाठी का भंडार

कई परियोजनाओं की समीक्षा करने के बाद, मैंने एक भंडार में योगदान करने का निर्णय लिया जिसका उद्देश्य वेब पेज सामग्री को मार्कडाउन फ़ाइल में परिवर्तित करना था। मेरी स्थानीय मशीन पर रेपो को फोर्क करने और क्लोन करने के बाद, मैंने README फ़ाइल में उल्लिखित सेटअप निर्देशों का पालन किया। हालाँकि, ऐसा प्रतीत होता है कि मेरा सहपाठी macOS का उपयोग कर रहा है, जो प्रतीकात्मक लिंकिंग के लिए ln कमांड का उपयोग करता है। चूंकि मैं विंडोज़ पर हूं, मुझे इस चरण को एनपीएम लिंक कमांड से बदलना पड़ा।

सेटअप की जांच करते समय, मैंने देखा कि पैकेज.जेसन फ़ाइल में स्टार्ट और बिन दोनों गुण गायब थे, जो सिम्लिंक स्थापित करने के लिए आवश्यक हैं। मैंने इन प्रविष्टियों को जोड़ा और अपने सहपाठी को दस्तावेज़ीकरण में विंडोज़ उपयोगकर्ताओं के लिए निर्देश शामिल करने की सलाह दी। अधिक विवरण

एक बार जब मैंने ऐप चालू कर लिया, तो मुझे अतिरिक्त समस्याओं का सामना करना पड़ा। पहली समस्या में एपीआई कुंजी को सहेजना शामिल था जिसे उपयोगकर्ता ग्रोक के एपीआई को .env फ़ाइल में कॉन्फ़िगर करने के लिए इनपुट करते हैं। मैंने एपीआई कुंजी भंडारण को संभालने के लिए कोड की कुछ पंक्तियाँ लिखीं। एक अन्य समस्या आउटपुट फ़ाइल को संसाधित करने के लिए गलत कोड स्कोप के कारण हुई, जिसने ऐप को अपेक्षा के अनुरूप आउटपुट उत्पन्न करने से रोक दिया।

इस लैब के लिए प्राथमिक सुविधा को लागू करने से पहले - प्रत्येक अनुरोध/प्रतिक्रिया के लिए टोकन उपयोग को ट्रैक करना - मैंने इन दो प्रारंभिक समस्याओं का समाधान किया। प्रत्येक अंक के लिए, मैंने एक अलग शाखा बनाई और तीन अलग-अलग पुल अनुरोध सबमिट किए।

for await (const chunk of chatCompletion) {
    process.stdout.write(chunk.choices[0]?.delta?.content || "");
    // process.stdout.write(chunk.choices[0]?.delta?.content || "");
    response  = chunk.choices[0]?.delta?.content || "";
    console.log(chunk);
    if (chunk.x_groq?.usage) {
      promptTokens = chunk.x_groq?.usage?.prompt_tokens;
      responseTokens = chunk.x_groq?.usage?.completion_tokens;
    }
  }

मेरा भंडार

मेरे अपने भंडार के संबंध में, ह्यूजिन शिन नाम के एक सहपाठी ने लैब 1 के दौरान इसमें योगदान दिया। प्रारंभ में, मैंने देखा कि वह मेरे कोडबेस के पुराने संस्करण पर काम कर रहा था, क्योंकि मैंने तब से स्पष्टता और दक्षता के लिए संरचना को पुनर्गठित किया था। उसे फिर से सिम्लिंक स्थापित करने से संबंधित समस्याओं का सामना करना पड़ा, और मैंने अंक #7 में मार्गदर्शन प्रदान किया, जिसमें सुझाव दिया गया कि वह उपयोग अनुभाग में सिम्लिंक सेटअप निर्देशों का पालन करने से पहले नवीनतम संस्करण खींच ले।

मेरे कोड में एक और समस्या आउटपुट फ़ाइल प्रोसेसिंग से संबंधित थी, जो विकल्प ध्वज और कोड में इसके आह्वान के बीच एक बेमेल से उत्पन्न हुई, जिससे उचित फ़ाइल प्रोसेसिंग में बाधा उत्पन्न हुई। मैंने अंक #8 में दृश्य सहायता के साथ एक विस्तृत प्रतिक्रिया प्रदान की है।

इस लैब की मुख्य विशेषता-टोकन उपयोग पर नज़र रखने के लिए, ह्यूजिन ने कोडबेस में महत्वपूर्ण बदलाव किए बिना इसे कुशलतापूर्वक लागू किया। चूँकि मैंने पहले ही ग्रोक को सही ढंग से आरंभ कर दिया था, उसे बस चैटकंप्लीशन प्रतिक्रिया से उपयोग डेटा निकालने की आवश्यकता थी:

javascript
Copy code
// Retrieve Token Usage from Response
const promptToken = chatCompletion.usage.prompt_tokens;
const completionToken = chatCompletion.usage.completion_tokens;
const totalToken = chatCompletion.usage.total_tokens;
const tokenInfo = { promptToken, completionToken, totalToken };

उसके फीचर जोड़ की समीक्षा करने के बाद, मैंने पीआर को मर्ज किया और इसका परीक्षण किया, यह पुष्टि करते हुए कि सब कुछ उम्मीद के मुताबिक काम करता है।

निष्कर्ष

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

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/anhchienvu/creating-pull-requests-to-exinternal-repositories-5183?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.com से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3