ब्लॉग पर वापस जाएं

शुरुआती लोगों के लिए AIगाइड

फ्यू-शॉट प्रॉम्प्टिंग: अपना प्रारूप पाने के लिए मॉडल को 3–5 उदाहरण दिखाएँ

कैसे 3–5 टैग किए गए उदाहरण एक मॉडल को आपके लेबल या JSON में उत्तर देने के लिए प्रेरित करते हैं, एक Python अनुरोध और प्रति अनुरोध अतिरिक्त इनपुट लागत के साथ।

CheapTokens Team द्वाराप्रकाशित 11 मिनट का पाठ

कवर: एक उदाहरण टिकट और उसके लेबल के साथ एक फ्यू-शॉट प्रॉम्प्ट
इस पृष्ठ पर
  1. “फ्यू-शॉट” का क्या अर्थ है
  2. काम करने वाले उदाहरणों के लिए तीन नियम
  3. इसे API के माध्यम से भेजें
  4. पाँच उदाहरण बिल में क्या जोड़ते हैं
  5. JSON, टोन, और अपने उदाहरणों की जाँच

आपके टिकट बॉट को एक शब्द में उत्तर देना चाहिए: billing, bug या other। अधिकांश उत्तर बिल्कुल वही होते हैं। फिर एक उत्तर “Label: billing — the customer seems upset about a refund” के रूप में आता है, और लेबल पढ़ने वाला कोड अटक जाता है।

सामान्य समाधान लंबा निर्देश नहीं है। यह कुछ उदाहरण हैं: प्रॉम्प्ट में अपने लेबल के साथ 3–5 पूर्ण टिकट डालें, और मॉडल पैटर्न की नकल करता है। यही फ्यू-शॉट प्रॉम्प्टिंग है। Anthropic की प्रॉम्प्टिंग गाइड (अनुभाग “Use examples effectively”, 3 नवंबर 2026 को जाँचा गया) उदाहरणों को प्रारूप, टोन और संरचना को निर्देशित करने के सबसे विश्वसनीय तरीकों में से एक बताती है, और उनमें से 3–5 की सिफारिश करती है। पेच यह है: प्रत्येक उदाहरण वह इनपुट है जिसके लिए आप प्रत्येक अनुरोध के साथ फिर से भुगतान करते हैं। नीचे दिया गया लागत अनुभाग इसे एक ऐसे बॉट के लिए गिनता है जो प्रतिदिन 2,000 टिकट संभालता है।

“फ्यू-शॉट” का क्या अर्थ है#

सहायता डेस्क पर अपने पहले दिन एक नए सहकर्मी की कल्पना करें। आप कहते हैं “प्रत्येक टिकट को billing, bug या other के रूप में टैग करें” और चले जाते हैं। कुछ टैग आपके विचार से मेल खाएंगे, कुछ नहीं। अब तीन टिकट छोड़ें जो पहले से टैग किए गए हैं और कहें “इन जैसे”। वही सहकर्मी, बहुत कम आश्चर्य।

मॉडल भी इसी तरह व्यवहार करते हैं। केवल निर्देश को ज़ीरो-शॉट कहा जाता है। निर्देश और कई हल किए गए उदाहरण फ्यू-शॉट हैं (Anthropic का पृष्ठ इसे मल्टीशॉट भी कहता है)। एक “शॉट” बस एक उदाहरण है।

तुलना करें

एक ही कार्य, दो प्रॉम्प्ट

केवल निर्देश

text
Label the support ticket as billing, bug or other.

निर्देश और उदाहरण

text
Label the support ticket with one word: billing, bug or other.

Ticket: I was charged twice for one top-up.
Label: billing

Ticket: The export button does nothing.
Label: bug

Ticket: Do you have a dark theme?
Label: other

दूसरा प्रॉम्प्ट कभी नहीं समझाता कि billing का क्या अर्थ है। उदाहरण दिखाकर यह करते हैं, और वे अर्थ के साथ प्रारूप भी ले जाते हैं। निर्देश की एक स्पष्ट पंक्ति अभी भी नुकसान नहीं करती, इसलिए नीचे दिया गया संस्करण इसे रखता है।

काम करने वाले उदाहरणों के लिए तीन नियम#

Anthropic का पृष्ठ अच्छे उदाहरणों को तीन शब्दों में समेटता है:

  • प्रासंगिक: उन टिकटों के करीब जो आपको वास्तव में मिलते हैं, किसी अन्य कार्य के नहीं।
  • विविध: वे एज केस को कवर करते हैं और एक-दूसरे से भिन्न होते हैं, ताकि मॉडल किसी आकस्मिक पैटर्न को न पकड़ ले।
  • संरचित: टैग में लिपटे (<example>, और <examples> के अंदर कई) ताकि मॉडल उदाहरणों को निर्देशों से अलग बता सके। वही पृष्ठ टैग नामों को सुसंगत रखने के लिए कहता है।

यहाँ इस तरह से बनाया गया एक पूरा प्रॉम्प्ट है। इसे prompt.txt के रूप में सहेजें:

text
<instructions>
Label the support ticket with exactly one word: billing, bug or other.
Reply with the label only.
</instructions>

<examples>
<example>
<ticket>I was charged twice for the same top-up.</ticket>
<label>billing</label>
</example>
<example>
<ticket>The export button does nothing when I click it.</ticket>
<label>bug</label>
</example>
<example>
<ticket>Do you have a dark theme?</ticket>
<label>other</label>
</example>
<example>
<ticket>Please refund me. Also, the page crashes on login.</ticket>
<label>billing</label>
</example>
<example>
<ticket>Is there an API for exporting reports?</ticket>
<label>other</label>
</example>
</examples>

चौथे उदाहरण को देखें: एक रिफंड अनुरोध जो क्रैश का भी उल्लेख करता है। एक निर्देश मिश्रित टिकट को तय नहीं कर सकता, एक उदाहरण कर सकता है। यहाँ पैसा जीतता है, इसलिए लेबल billing है। आप जो भी नियम चुनें, उसे एक बार दिखाएँ।

जोड़े मिलाएँ

कौन सा नियम टूटा है?

  • आपके उदाहरण एक-पंक्ति के चैट अभिवादन हैं, लेकिन वास्तविक टिकट लंबे ईमेल हैंप्रासंगिक नहीं: उदाहरण वास्तविक कार्य के करीब होने चाहिए
  • आपके सभी उदाहरणों में एक ही लेबल हैविविध नहीं: मॉडल एक आकस्मिक पैटर्न उठा सकता है
  • उदाहरण निर्देशों के बीच ढीले पाठ के रूप में चिपकाए गए हैंसंरचित नहीं: उन्हें टैग में लपेटें ताकि उन्हें निर्देश समझा न जा सके

इसे API के माध्यम से भेजें#

प्रॉम्प्ट प्रत्येक अनुरोध में एक ही पाठ है, और केवल नया टिकट बदलता है। प्रत्येक टिकट एक ही छोटी यात्रा से गुजरता है:

निर्देश, उदाहरण और नया टिकट एक अनुरोध में जाते हैं; एक लेबल वापस आता है
प्रति टिकट एक अनुरोध: निर्देश और उदाहरण रहते हैं, टिकट बदलता है

यहाँ यह openai पैकेज के साथ Python में है। पता CheapTokens API है, कुंजी एक पर्यावरण चर में है (कुंजी को सुरक्षित रूप से कैसे संग्रहीत करें देखें), और मॉडल आईडी दस्तावेज़ से पूरी है:

python
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.cheaptokens.dev/v1",
    api_key=os.environ["CHEAPTOKENS_API_KEY"],
)

PROMPT = open("prompt.txt", encoding="utf-8").read()


def label(ticket: str) -> str:
    response = client.chat.completions.create(
        model="deepseek-ai/DeepSeek-V4-Flash-0731",
        max_tokens=64,
        messages=[
            {"role": "system", "content": PROMPT},
            {"role": "user", "content": f"<ticket>{ticket}</ticket>"},
        ],
    )
    print(response.usage.prompt_tokens, response.usage.completion_tokens)
    return response.choices[0].message.content.strip()


print(label("The app shows a blank screen after the update."))

जब यह काम करता है तो आप एक पंक्ति में दो टोकन गणनाएँ और फिर लेबल स्वयं देखते हैं, एक शब्द जैसे bug। यदि आपको इसके बजाय एक वाक्य मिलता है, तो उदाहरण अभी तक अपना काम नहीं कर रहे हैं: टैग जाँचें और यह कि आपकी योजना से प्रत्येक लेबल कम से कम एक बार दिखाई देता है।

पहली संख्या देखने वाली है। यह पूरा प्रॉम्प्ट है, निर्देश और उदाहरण और टिकट, और यह आपके द्वारा जोड़े गए प्रत्येक उदाहरण के साथ बढ़ता है। स्क्रिप्ट को एक बार पूर्ण prompt.txt के साथ और एक बार केवल <instructions> भाग के साथ चलाएँ: दो पहली संख्याओं के बीच का अंतर वही है जो आपके उदाहरण प्रति अनुरोध खर्च करते हैं।

DeepSeek-V4-Flash इस प्रकार के बड़े पैमाने पर लेबलिंग के लिए उपयुक्त है: दिन के किसी भी समय एक मूल्य, 380K-टोकन संदर्भ (इसलिए एक लंबा उदाहरण ब्लॉक आसानी से फिट हो जाता है) और प्रति उत्तर 32,768 टोकन तक। GLM-5.3-Flash, 390K संदर्भ के साथ, छोटे लेबलिंग कार्यों के लिए भी काम करता है। दोनों मॉडल पृष्ठ पर हैं, एक शेष राशि के पीछे।

पाँच उदाहरण बिल में क्या जोड़ते हैं#

मान लें कि बॉट प्रतिदिन 2,000 टिकट संभालता है। मान लें कि एक टिकट लगभग 120 टोकन है और निर्देश लगभग 80, इसलिए बिना उदाहरणों के एक अनुरोध 80 + 120 = 200 इनपुट टोकन है। लगभग 60 टोकन प्रत्येक के पाँच उदाहरण 5 × 60 = 300 जोड़ते हैं, इसलिए उनके साथ एक अनुरोध 200 + 300 = 500 है। उत्तर एक शब्द है, इसे दोनों तरह से 3 आउटपुट टोकन कहें। ये अनुमान हैं: अपनी स्क्रिप्ट द्वारा मुद्रित prompt_tokens को इसमें डालें।

एक दिन में, 200 × 2,000 = 400,000 इनपुट टोकन 500 × 2,000 = 1,000,000 हो जाते हैं, जबकि आउटपुट 3 × 2,000 = 6,000 टोकन पर रहता है। DeepSeek-V4-Flash पर यह बिना उदाहरणों के $0.0066 प्रतिदिन और उनके साथ $0.0156 है। उदाहरण आपको उन दो संख्याओं के बीच का अंतर खर्च कराते हैं, और Anthropic के अनुसार वे आपको अधिक सुसंगत आउटपुट देते हैं।

प्रत्येक अनुरोध में समान: निर्देश और पाँच उदाहरण। हर बार नया: टिकट
अनुरोधों के बीच केवल टिकट बदलता है

वह चित्र एक उपयोगी विवरण छिपाता है। उदाहरण ब्लॉक प्रत्येक अनुरोध में समान है, जो ठीक उसी प्रकार की बार-बार होने वाली शुरुआत है जिसके बारे में प्रॉम्प्ट कैशिंग है; प्रॉम्प्ट कैशिंग क्या है बताता है कि यह कैसे काम करता है।

यहाँ मॉडलों में समान भार, 500 इनपुट और 3 आउटपुट टोकन प्रति अनुरोध, 2,000 अनुरोध हैं। तालिका वर्तमान कीमतों से पुनर्गणना करती है:

मॉडल प्रति अनुरोध 2,000 अनुरोध OpenRouter, 2,000 अनुरोध
GLM-5.3-Flash $0.00001 $0.0202 $0.034
DeepSeek-V4-Flash $0.0000078 $0.0156 $0.0708
MiniMax-M2.7 $0.000025 $0.0509 $0.611

प्रति अनुरोध 500 इनपुट और 3 आउटपुट टोकन। प्रति 1M टोकन की कीमतें वर्तमान हैं और हमारे टैरिफ के साथ बदलती रहती हैं; OpenRouter कॉलम समान कार्यभार के लिए संदर्भ कीमतें दिखाता है।

इनपुट और आउटपुट को एक साथ गिनने पर, इस भार पर DeepSeek-V4-Flash और GLM-5.3-Flash OpenRouter से सस्ते निकलते हैं। पूरी मूल्य सूची मूल्य निर्धारण पृष्ठ पर है।

JSON, टोन, और अपने उदाहरणों की जाँच#

वही तरकीब आपके सामने आने वाले अन्य दो मामलों को कवर करती है। हर बार समान JSON फ़ील्ड चाहिए? उदाहरण को स्वयं JSON का उत्तर बनाएँ:

text
<example>
<ticket>I was charged twice for the same top-up.</ticket>
<output>{"label": "billing", "urgent": true}</output>
</example>

response_format के लिए और जब कोई उत्तर अभी भी मान्य न हो तो क्या करें, LLM API से मान्य JSON प्राप्त करें देखें। क्या आप एक टोन में टेक्स्ट फिर से लिखना चाहते हैं? “मैत्रीपूर्ण लेकिन संक्षिप्त” जैसे विशेषण अस्पष्ट हैं; दो पहले-और-बाद के जोड़े इसे बेहतर दिखाते हैं।

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

चेकलिस्ट

अपने उदाहरणों पर भरोसा करने से पहले

एक बार उदाहरण काम करने लगें, तो अगला सवाल यह है कि एक प्रॉम्प्ट में कई दस्तावेज़ों को एक साथ धुंधला होने से कैसे रोकें। प्रॉम्प्ट में प्रत्येक दस्तावेज़ को लेबल करें इसे कवर करता है।