کچھ بنا پرومپٹ ٹیمپلیٹس
پرومپٹ میں تعداد معین کے مثالوں کا استعمال کرنا، ماڈل کو صارف کا ارادہ بہتر سمجھنے میں مدد فراہم کرتا ہے، جس سے بہتر جوابات دینے یا تسک انجام دینے کی صلاحیت حاصل ہوتی ہے۔ کچھ بنا پرومپٹ ٹیمپلیٹس کا مطلب ہے کہ ماڈل کو نئے ان پٹس کو حل کرنے میں رہنمائی دینے کے لئے کم سے کم مثالوں کا استعمال کرنا۔ یہ مثالیں ماڈل کو تربیت دینے کے لئے استعمال کی جاتی ہیں تاکہ وہ مشابہ سوالات کو بہتر سمجھ اور جواب دینے میں مدد کر سکے۔
مثال:
Q: What is Batman?
A: Batman is a fictional comic character.
Q: What is torsalplexity?
A: Unknown.
Q: What is a language model?
A:
ماڈل کو بتائیں کہ Q سوال ہے اور A جواب ہے، اور اس فارمیٹ میں انٹریکٹ کریں۔
نیچے لان چین کی طرف سے فراہم کردہ ٹول کلاس کی وضاحت ہے جو پرومپٹ میں مثالیں شامل کرتا ہے۔
مثال سیٹ کے استعمال
مثال سیٹ بنانا
نیچے ایک مثالیں
ایسے ارے کا جائزہ لیں، جو سوالوں اور جوابوں کا ایک سیٹ موجود ہو۔
from langchain.prompts.few_shot import FewShotPromptTemplate
from langchain.prompts.prompt import PromptTemplate
مثالیں = [
{
"question": "Whose lifespan is longer, Muhammad Ali or Alan Turing?",
"answer":
"""
کیا ہمیں سوال پر مزید درستی کی ضرورت ہے: ہاں۔
مزید درستی کا سوال: محمد علی جب وفات پائے تو کتنے برس کے تھے؟
متوسط جواب: محمد علی کی عمر 74 برس تھی جب وہ وفات پائے۔
مزید درستی کا سوال: الن ٹیورنگ کی عمر کتنی تھی جب وہ وفات پائے؟
متوسط جواب: الن ٹیورنگ کی عمر 41 برس تھی جب وہ وفات پائے۔
لہذا آخری جواب ہے: محمد علی
"""
},
{
"question": "When was the founder of craigslist born?",
"answer":
"""
کیا ہمیں سوال پر مزید درستی کی ضرورت ہے: ہاں۔
مزید درستی کا سوال: craigslist کا بانی کون ہے؟
متوسط جواب: craigslist کا بانی کریگ نیومارک ہیں۔
مزید درستی کا سوال: کریگ نیومارک کب پیدا ہوئے تھے؟
متوسط جواب: کریگ نیومارک کا پیدائش کا تاریخ 6 دسمبر، 1952 ہے۔
لہذا آخری جواب ہے: 6 دسمبر، 1952
"""
},
{
"question": "Who was the mother of George Washington's grandparents?",
"answer":
"""
کیا ہمیں سوال پر مزید درستی کی ضرورت ہے: ہاں۔
مزید درستی کا سوال: جارج واشنگٹن کی ماں کون تھی؟
متوسط جواب: جارج واشنگٹن کی ماں میری بال واشنگٹن تھیں۔
مزید درستی کا سوال: میری بال واشنگٹن کے والد کون تھے؟
متوسط جواب: میری بال واشنگٹن کے والد جوزف بال تھے۔
لہذا آخری جواب ہے: جوزف بال
"""
},
{
"question": "Do the directors of 'Jaws' and 'Casino Royale' come from the same country?",
"answer":
"""
کیا ہمیں سوال پر مزید درستی کی ضرورت ہے: ہاں۔
مزید درستی کا سوال: 'Jaws' کے ڈائریکٹر کون ہیں؟
متوسط جواب: 'Jaws' کے ڈائریکٹر اسٹیون اسٹیون سپیلبرگ ہیں۔
مزید درستی کا سوال: اسٹیون اسٹیون سپیلبرگ کہاں سے ہیں؟
متوسط جواب: ریاستہائے متحدہ۔
مزید درستی کا سوال: 'Casino Royale' کے ڈائریکٹر کون ہیں؟
متوسط جواب: 'Casino Royale' کے ڈائریکٹر مارٹن کیمپ بل ہیں۔
مزید درستی کا سوال: مارٹن کیمپ بل کہاں سے ہیں؟
متوسط جواب: نیوزی لینڈ۔
لہذا آخری جواب ہے: نہیں
"""
}
]
مثالیں کے لئے فارمیٹر بنانا
بس PromptTemplate
آبجیکٹ کا استعمال کرتے ہوئے پرومپٹ ٹیمپلیٹ میں مثال شامل کریں۔
مثالیں_پرومپٹ = PromptTemplate(input_variables=["question", "answer"], template="سوال: {question}\\n{answer}")
print(مثالیں_پرومپٹ.format(**مثالیں[0]))
آؤٹپٹ:
سوال: Whose lifespan is longer, Muhammad Ali or Alan Turing?
کیا ہمیں سوال پر مزید درستی کی ضرورت ہے: ہاں۔
مزید درستی کا سوال: محمد علی جب وفات پائے تو کتنے برس کے تھے؟
متوسط جواب: محمد علی کی عمر 74 برس تھی جب وہ وفات پائے۔
مزید درستی کا سوال: الن ٹیورنگ کی عمر کتنی تھی جب وہ وفات پائے؟
متوسط جواب: الن ٹیورنگ کی عمر 41 برس تھی جب وہ وفات پائے۔
لہذا آخری جواب ہے: محمد علی
FewShotPromptTemplate
کے لئے نمونے اور فارمیٹنگ فراہم کرنا
FewShotPromptTemplate
آبجیکٹ کے ساتھ، آپ نمونے مواد کو ایک بار میں شامل کر سکتے ہیں۔
prompt = FewShotPromptTemplate(
examples=examples,
example_prompt=example_prompt,
suffix="Question: {input}",
input_variables=["input"]
)
print(prompt.format(input="George Washington کے والد کون تھا؟"))
رجوع:
سوال: کس کی عمر زیادہ ہے، محمد علی یا الن ٹیورنگ؟
کیا ہمیں اس سوال پر مذاق کرنا چاہئے: ہاں۔
مذاق: محمد علی کی عمر کیا تھی جب وہ فوت ہوئے؟
درمیانی جواب: محمد علی کی عمر 74 سال تھی جب وہ فوت ہوئے۔
مذاق: الن ٹیورنگ کی عمر کیا تھی جب وہ فوت ہوئے؟
درمیانی جواب: الن ٹیورنگ کی عمر 41 سال تھی جب وہ فوت ہوئے۔
اس لئے آخری جواب: محمد علی
سوال: کریگزلسٹ کے بانی کی پیدائش کب ہوئی تھی؟
کیا ہمیں اس سوال پر مذاق کرنا چاہئے: ہاں۔
مذاق: کریگزلسٹ کے بانی کون ہیں؟
درمیانی جواب: کریگزلسٹ کو Craig Newmark نے بانایا تھا۔
مذاق: Craig Newmark کی پیدائش کب ہوئی تھی؟
درمیانی جواب: Craig Newmark 6 دسمبر، 1952 کو پیدا ہوئے تھے۔
اس لئے آخری جواب: 6 دسمبر، 1952
سوال: George Washington کے دادا دادی کی ماں کون تھیں؟
کیا ہمیں اس سوال پر مذاق کرنا چاہئے: ہاں۔
مذاق: George Washington کی ماں کون ہیں؟
درمیانی جواب: George Washington کی ماں Mary Ball Washington ہیں۔
مذاق: Mary Ball Washington کے بابا کون تھے؟
درمیانی جواب: Mary Ball Washington کے باپ Joseph Ball ہیں۔
اس لئے آخری جواب: Joseph Ball
سوال: "Jaws" اور "Casino Royale" کے ڈائریکٹر ایک ہی ملک سے ہیں؟
کیا ہمیں اس سوال پر مذاق کرنا چاہئے: ہاں۔
مذاق: "Jaws" کے ڈائریکٹر کون ہیں؟
درمیانی جواب: "Jaws" کے ڈائریکٹر Steven Spielberg ہیں۔
مذاق: Steven Spielberg کہاں سے ہیں؟
درمیانی جواب: ریاستہائے متحدہ۔
مذاق: "Casino Royale" کے ڈائریکٹر کون ہیں؟
درمیانی جواب: "Casino Royale" کے ڈائریکٹر Martin Campbell ہیں۔
مذاق: Martin Campbell کہاں سے ہیں؟
درمیانی جواب: نیوزی لینڈ۔
اس لئے آخری جواب: نہیں
سوال: George Washington کے والد کون تھا؟
نمونہ منتخب کرنے والے سیلیکٹر کا استعمال
ExampleSelector
کو نمونے فراہم کریں
اس سیکشن میں ہم پہلے سیکشن سے فری شوٹ پرومٹ فارمیٹ اور نمونے پیش کریں گے۔ البتہ، FewShotPromptTemplate
آبجیکٹ کو مثالوں کو بہتر طریقے سے فراہم کرنے کی بجائے، ہم انہیں ExampleSelector
آبجیکٹ کو فراہم کریں گے تاکہ وہ مثالوں کا حصہ فراہم کرے۔
ہم یہاں SemanticSimilarityExampleSelector
کلاس کا استعمال کریں گے۔ یہ کلاس مواد کی مشابہت کو دیکھتے ہوئے ایک چھوٹا سا نمونہ منتخب کرتی ہے۔ یہ ایک اندود ماڈل کا استعمال کرتی ہے تاکہ مدخل اور چھوٹے سے نمونے کی مشابہت کا اندازہ لگایا جا سکے، اور پھر ویکٹر ڈیٹا بیس کا استعمال کرتی ہے تاکہ مدخل کے مشابہ نمونوں کو دوبارہ حاصل کیا جا سکے۔
- نوٹ: یہ بیکٹر حسابات اور بیکٹر ڈیٹا بیس کا ذکر ہے، جو عموماً معلوماتی بصیرت کے شعبے میں دیتی ہے، مثال کے طور پر مشابہ مضمون، مشابہ تصاویر، ویڈیوز وغیرہ کے مشابہت کی تلاش کے لئے استعمال ہوتی ہے۔ یہاں صرف ہلکی سی سمجھ ہے۔
from langchain.prompts.example_selector import SemanticSimilarityExampleSelector
from langchain_community.vectorstores import Chroma
from langchain_openai import OpenAIEmbeddings
example_selector = SemanticSimilarityExampleSelector.from_examples(
examples,
OpenAIEmbeddings(),
Chroma,
k=1
)
question = "George Washington کے والد کون تھا؟"
selected_examples = example_selector.select_examples({"question": question})
print(f"سب سے مشابہ نمونہ: {question}")
for example in selected_examples:
print("\\n")
for k, v in example.items():
print(f"{k}: {v}")
یہاں، سوال کے مشابہ نمونے منتخب ہوتے ہیں، اور مندرجہ ذیل مواد واپس آتے ہیں:
Chroma کو محلی API کا استعمال کرکے دوڑایا جا رہا ہے۔
DuckDB memory میں ڈیٹا قید ہوگا۔ ڈیٹا عارضی ہوگا۔
سب سے مشابہ نمونہ: George Washington کے والد کون تھا؟
سوال: George Washington کی ماں کون ہیں؟
جواب:
کیا ہمیں اس سوال پر مذاق کرنا چاہئے: ہاں۔
مذاق: George Washington کی ماں کون ہیں؟
درمیانی جواب: George Washington کی ماں Mary Ball Washington ہیں۔
مذاق: Mary Ball Washington کے بابا کون تھے؟
درمیانی جواب: Mary Ball Washington کے باپ Joseph Ball ہیں۔
اس لئے آخری جواب: Joseph Ball
مثال منتخب کرو بنانے کے لئے `FewShotPromptTemplate` کا مثال سلیکٹر فراہم کریں۔
آخر کار، ایک `FewShotPromptTemplate` آبجیکٹ بنائیں۔ پچھلے مثال سلیکٹر سے موازن مثال منتخب کرکے اس پر مبنی `FewShotPromptTemplate` آبجیکٹ بنائیں۔
```python
prompt = FewShotPromptTemplate(
example_selector=مثال_منتخب_کرنے_والا,
example_prompt=مثال_پراپٹ,
suffix="سوال: {input}",
input_variables=["input"]
)
print(prompt.format(input="جارج واشنگٹن کے والد کون تھے؟"))
رجوع:
سوال: جارج واشنگٹن کے دادا دادی کی ماں کون ہیں؟
کیا ہمیں اس سوال کے ساتھ آگے چلنا چاہئیے؟: ہاں۔
آگے چلیں: جارج واشنگٹن کی ماں کون ہیں؟
درمیانی جواب: جارج واشنگٹن کی ماں میری بال واشنگٹن ہیں۔
آگے چلیں: میری بال واشنگٹن کے والد کون تھے؟
درمیانی جواب: میری بال واشنگٹن کے والد جوزف بال تھے۔
تو آخری جواب ہے: جوزف بال