প্রোম্পট টেমপ্লেট
ভাষা মডেল টেক্সটকে ইনপুট হিসাবে নেয়। যেটা সাধারণভাবে "প্রম্পট" হিসাবে পরিচিত। ডেভেলপমেন্টের সময়, প্রম্পট সাধারণভাবে সরাসরি হার্ডকোড করা হয় না, কারণ এটা প্রম্পট ম্যানেজমেন্ট এ সহায়ক নয়। তাই প্রম্পট টেমপ্লেট ব্যবহার করা হয়, যা এসএমএস বা ইমেলের কন্টেন্ট এর জন্যে টেমপ্লেটের মত কাজ করে।
প্রম্প্ট টেমপ্লেট কি?
প্রম্পট টেমপ্লেট সাধারণভাবে ব্যবহৃত ইমেইল বা এসএমএস টেমপ্লেটের মতো কিছু নয়। এটি হল একটি স্ট্রিং টেমপ্লেট যা একটি সেট অফ টেমপ্লেট প্যারামিটার ধারণ করতে পারে। টেমপ্লেট প্যারামিটার ভ্যালুগুলি ব্যবহার করে টেমপ্লেটের কন্টেন্ট ফরম্যাটিং করার জন্যে।
একটি প্রম্পট টেমপ্লেট নিম্নলিখিত কন্টেন্ট বিশেষ করে থাকতে পারে:
- বড় ভাষা মডেল (বিএলএলএম) কে পাঠানো নির্দেশিকা।
- প্রশ্ন-উত্তর উদাহরণের একটি সেট, যাতে এআইকে প্রত্যাশিত ফরম্যাটে রিকোয়েস্ট ফিরিয়ে দেবার জন্য অনুপ্রেরণা দেওয়া যায়।
- ভাষা মডেলে পাঠানো প্রশ্ন।
প্রম্পট টেমপ্লেট তৈরি করা
আপনি যেহেতু প্রম্পট বানানোর জন্যে PromptTemplate
ক্লাস ব্যবহার করতে পারেন, তাহলে আপনি একটি সাধারণ প্রম্পট তৈরি করতে পারেন। প্রম্পট টেমপ্লেট যেন যেকোনো সংখ্যক টেমপ্লেট প্যারামিটার ধারণ করতে পারে, এবং তারপর প্যারামিটার ভ্যালুগুলি ব্যবহার করে টেমপ্লেট কন্টেন্ট ফরম্যাটিং করা যায়।
from langchain.prompts import PromptTemplate
prompt_template = PromptTemplate.from_template(
"Tell me a {adjective} joke about {content}."
)
prompt_template.format(adjective="funny", content="chickens")
টেমপ্লেট আউটপুট রেজাল্ট:
'Tell me a funny joke about chickens.'
চ্যাট মেসেজ প্রম্পট টেমপ্লেট
চ্যাট মডেল নেওয়া মেসেজের লিস্ট হিসাবে ইনপুট নিয়ে, এবং এই চ্যাট মেসেজের কন্টেন্ট প্রম্পট টেম্পলেট ব্যবহার করে ম্যানেজ করা হয়। এই চ্যাট মেসেজগুলি র অরথ হল একটি "রোল" সঙ্গে সম্পর্কিত হতে পারে।
উদাহরণস্বরূপ, OpenAI-র চ্যাট কমপ্লিশন এপিআই তে, OpenAI-র চ্যাট মডেল বিভিন্ন চ্যাট মেসেজের জন্য তিনটি রোল নির্ধারণ করে: এসিস্ট্যান্ট, হিউম্যান, বা সিস্টেম রোল:
- অ্যাসিস্ট্যান্ট মেসেজ মানে এআই-র প্রতিক্রিয়া।
- হিউম্যান মেসেজ মানে ব্যবহার দ্বারা এআই-কে পাঠানো মেসেজ।
- সিস্টেম মেসেজ সাধারণভাবে এআই-র পরিচয় বর্ননা করতে ব্যবহৃত হয়।
চ্যাট মেসেজ টেমপ্লেট তৈরির একটি উদাহরণ:
from langchain_core.prompts import ChatPromptTemplate
chat_template = ChatPromptTemplate.from_messages(
[
("system", "You are a helpful AI bot. Your name is {name}."),
("human", "Hello, how are you doing?"),
("ai", "I'm doing well, thanks!"),
("human", "{user_input}"),
]
)
messages = chat_template.format_messages(name="Bob", user_input="What is your name?")
একটি অন্য উদাহরণ:
from langchain.prompts import HumanMessagePromptTemplate
from langchain_core.messages import SystemMessage
from langchain_openai import ChatOpenAI
chat_template = ChatPromptTemplate.from_messages(
[
SystemMessage(
content=(
"You are a helpful assistant that re-writes the user's text to "
"sound more upbeat."
)
),
HumanMessagePromptTemplate.from_template("{text}"),
]
)
messages = chat_template.format_messages(text="I don't like eating tasty things")
print(messages)
সাধারণভাবে, আমরা প্রম্পট টেমপ্লেট কন্টেন্ট ফরম্যাট করার জন্যে সরাসরি format_messages
ফাংশন ব্যবহার করি না, বরং Langchain ফ্রেমওয়ার্কের মাধ্যমে এটি স্বয়ংক্রিয়ভাবে হ্যান্ডেল করানো।