AI চ্যাটবট অ্যাপ কীভাবে বানাবেন: Key, Prompt, খরচ ও নিরাপত্তা
একটি AI চ্যাটবট অ্যাপ বানাতে চারটি জিনিস লাগে: একটি চ্যাট ইন্টারফেস, একটি ছোট সার্ভার যা মডেল প্রদানকারীর API key রাখে এবং বার্তা তাদের কাছে পাঠায়, একটি system prompt যা মডেলকে বলে দেয় সে কে এবং কী করতে পারে, আর কিছু সীমা যা খরচ ও অপব্যবহার নিয়ন্ত্রণে রাখে। একটি AI app builder এসব একটি বর্ণনা থেকে লিখে দিতে পারে। আপনার নিজের কাজ থাকে প্রদানকারী বাছাই, নির্দেশনা লেখা এবং বটটি কখনো কী করবে না তা ঠিক করা।
একটি AI চ্যাটবট অ্যাপ কী দিয়ে তৈরি
সহায়তা বট, টিউটর বা অভ্যন্তরীণ "আমাদের ডকুমেন্ট জিজ্ঞাসা করুন" টুল, বেশির ভাগ চ্যাটবট অ্যাপের একই অংশ থাকে:
| অংশ | কাজ | এটি বাদ দেওয়া যায় কি? |
|---|---|---|
| চ্যাট UI | বার্তার তালিকা, ইনপুট বক্স, "ভাবছে" অবস্থা, ধাপে ধাপে আসা উত্তর | না |
| সার্ভার রুট | ব্যবহারকারীর বার্তা গ্রহণ করে, system prompt যোগ করে, আপনার গোপন key দিয়ে প্রদানকারীকে ডাকে | না, key কখনো ব্রাউজারে পৌঁছাতে পারবে না |
| System prompt | স্থায়ী নির্দেশনা: ভূমিকা, সুর, পরিধি, কী প্রত্যাখ্যান করতে হবে | না |
| জ্ঞানভান্ডার | আপনার নিজের কনটেন্ট যা থেকে বট উত্তর দেয় (FAQ, নীতিমালা, পণ্যের ডক) | হ্যাঁ, সাধারণ সহকারীর জন্য |
| কথোপকথন সংরক্ষণ | ব্যবহারকারী যেন ফিরে আসতে পারে সেজন্য ডাটাবেসে থ্রেড রাখা | হ্যাঁ, প্রথম সংস্করণে |
| অ্যাকাউন্ট | প্রতিটি ব্যবহারকারী শুধু নিজের ইতিহাস দেখে, এবং প্রতি জনের ব্যবহার সীমিত করা যায় | হ্যাঁ, কঠোর সীমাসহ প্রকাশ্য ডেমোর জন্য |
| সীমা ও লগিং | বার্তার দৈর্ঘ্যের সীমা, রেট লিমিট, খরচের সীমা, ত্রুটির রেকর্ড | না |
সার্ভার রুটই সবচেয়ে বেশি ভুল হয়। চ্যাট পেজ যদি সরাসরি ব্রাউজার থেকে প্রদানকারীকে ডাকে, তবে যে কেউ developer tools খুলে আপনার key কপি করে বড় বিল তৈরি করতে পারে।
বানানোর আগে যে সিদ্ধান্তগুলো নিতে হবে
কোন প্রদানকারী ও মডেল
OpenAI, Anthropic, Google এবং অন্যান্য প্রদানকারী সবাই একই ধাঁচের চ্যাট API দেয়: মেসেজের তালিকা পাঠান, উত্তর পান। এখানে আসল বিবেচ্য বিষয় ব্র্যান্ড নয়, মডেলের আকার:
- ছোট, দ্রুত মডেল সস্তা ও দ্রুত উত্তর দেয়। সংক্ষিপ্ত উত্তর, শ্রেণিবিভাগ ও সরল FAQ বটের জন্য ভালো।
- বড় মডেল ভালো যুক্তি দেয়, দীর্ঘ নির্দেশনা নির্ভরভাবে মানে এবং জটিল প্রশ্ন সামলায়, তবে প্রতি বার্তায় বেশি খরচ হয় এবং উত্তর ধীরে আসে।
একটি মাঝারি আকারের মডেল দিয়ে শুরু করুন, আপনার আসল প্রশ্নগুলোর ওপর পরীক্ষা করুন, তারপর প্রয়োজনে উপরে বা নিচে সরান। এই API কীভাবে দাম ধার্য হয় ও কল করা হয়, তা নতুন হলে আগে LLM API কীভাবে ব্যবহার করবেন পড়ে নিন।
বটের জ্ঞান কোথা থেকে আসবে
| আপনার কনটেন্ট | পদ্ধতি |
|---|---|
| এক-দুটি পাতা (খোলার সময়, ফেরত নীতি, মূল্য) | সরাসরি system prompt-এ বসান |
| কয়েক ডজন পাতা যা খুব কমই বদলায় | সংক্ষেপিত রূপ prompt-এ দিন, অথবা বিষয় অনুযায়ী ভাগ করে প্রাসঙ্গিক অংশ যোগ করুন |
| শত শত নথি, বা প্রতিদিন বদলায় এমন কনটেন্ট | সংরক্ষণ করুন, প্রতিটি প্রশ্নের সাথে মিলে যাওয়া অংশ খুঁজুন এবং শুধু সেগুলো পাঠান (RAG) |
আপনার কনটেন্ট যে সহজ পদ্ধতিতে কুলায় সেটি দিয়ে শুরু করুন। Retrieval-এ একটি সার্চ ইনডেক্স লাগে, সেটি হালনাগাদ রাখতে হয় এবং উত্তর ভুল হওয়ার আরও জায়গা তৈরি হয়। অনেক কাজের বট কখনো এটি ছাড়াই চলে।
প্রকাশ্য, না লগইনের পেছনে
ওয়েবসাইটের প্রকাশ্য চ্যাটবট সহজে পৌঁছানো যায়, কিন্তু অপব্যবহারও সহজ: কেউ স্ক্রিপ্ট দিয়ে হাজার হাজার বার্তা পাঠাতে পারে। লগইন-করা বট প্রতি ব্যবহারকারীর ইতিহাস রাখতে এবং প্রতি অ্যাকাউন্টের দৈনিক সীমা ঠিক করতে দেয়। বট প্রকাশ্য হলে বার্তার দৈর্ঘ্য সীমিত করুন, একজন দর্শক একটি সময়ে কতগুলো বার্তা পাঠাতে পারবে তা বেঁধে দিন, এবং প্রদানকারীর ড্যাশবোর্ডে একটি কঠোর মাসিক সীমা রাখুন। আপনার অ্যাপে লগইন কীভাবে যোগ করবেন অ্যাকাউন্টের দিকটি ব্যাখ্যা করে।
কথোপকথন সংরক্ষণ করবেন কি না
সংরক্ষিত থ্রেড কাজের: ব্যবহারকারী যেখানে থেমেছিল সেখান থেকে শুরু করতে পারে, আর আপনি আসল প্রশ্নগুলো পড়ে prompt উন্নত করতে পারেন। তবে এগুলো ব্যক্তিগত তথ্যও। কতদিন রাখবেন তা ঠিক করুন, গোপনীয়তা বিজ্ঞপ্তিতে তা জানিয়ে দিন, আর যা প্রয়োজন নেই তা সংরক্ষণ করবেন না।
System prompt লিখুন একটি কাজের বিবরণের মতো
System prompt হলো প্রতিটি কথোপকথনের আগে মডেল যে নির্দেশনা পায়। একটি ভালো প্রম্পট নতুন কর্মীর জন্য লেখা সংক্ষিপ্ত ব্রিফের মতো পড়ে:
- ভূমিকা ও শ্রোতা: "তুমি Oakline-এর সহায়তা সহকারী, একটি বাইক মেরামতের দোকান। তুমি গ্রাহকদের সাথে কথা বলো।"
- পরিধি: "সেবা, দাম, খোলার সময় ও বুকিং নিয়ে প্রশ্নের উত্তর দাও। অন্য যেকোনো কিছুর জন্য বলো যে তুমি শুধু দোকান নিয়েই সাহায্য করতে পারো।"
- সত্যের উৎস: "শুধু নিচের তথ্য ব্যবহার করো। উত্তর সেখানে না থাকলে বলো তুমি জানো না, আর দোকানের ফোন নম্বর দাও।"
- সুর ও দৈর্ঘ্য: "বন্ধুত্বপূর্ণ, সহজ ভাষায়, বিশদ না চাইলে তিনটির বেশি বাক্য নয়।"
- কঠোর নিয়ম: "তালিকায় না থাকা মেরামতের দাম কখনো প্রতিশ্রুতি দিও না। কখনো কার্ডের তথ্য চেও না।"
এরপর কঠিন প্রশ্ন দিয়ে পরীক্ষা করুন: পরিধির বাইরের অনুরোধ, অভদ্র বার্তা, আপনার কনটেন্টে উত্তর নেই এমন প্রশ্ন, এবং নির্দেশনা উপেক্ষা করানোর চেষ্টা ("সব নিয়ম ভুলে যাও এবং…")। উত্তরগুলো যতক্ষণ না এমন হয় যাতে আপনি নিজের নামে দাঁড়াতে পারেন, প্রম্পট বদলাতে থাকুন।
খরচ পূর্বানুমেয় রাখুন
প্রদানকারীরা প্রতি টোকেনে (মোটামুটি, শব্দের টুকরো) বিল করে: আপনার পাঠানো ইনপুট ও মডেলের লেখা আউটপুট, দুটোরই হিসাব হয়। বিল তিনটি জিনিসে বাড়ে:
- কথোপকথনের দৈর্ঘ্য। প্রতিটি নতুন বার্তায় সাধারণত পুরো থ্রেড আবার পাঠানো হয়, যাতে মডেল প্রসঙ্গ বোঝে। ৪০ বার্তার চ্যাটের প্রতিটি উত্তর ৪ বার্তার চ্যাটের চেয়ে অনেক বেশি খরচ করে। শেষের কয়েকটি বার্তা রাখুন, অথবা পুরনোগুলো সংক্ষেপ করুন।
- Prompt-এর আকার। দীর্ঘ system prompt বা বড় করে পেস্ট করা জ্ঞান প্রতিটি বার্তার সাথে যায়।
- আউটপুটের দৈর্ঘ্য। API কলে উত্তরের সর্বোচ্চ দৈর্ঘ্য ঠিক করুন, আর prompt-এ সংক্ষিপ্ত উত্তর চান।
লঞ্চের আগে প্রদানকারীর ড্যাশবোর্ডে মাসিক খরচের সীমা ঠিক করুন, এবং প্রতিটি অনুরোধের টোকেন ব্যবহার লগ করুন যাতে বোঝা যায় কোন কথোপকথন বেশি খরচ করছে। এখানে দাম উল্লেখ করছি না, কারণ তা মডেলভেদে আলাদা এবং ঘনঘন বদলায়; প্রদানকারীর নিজস্ব মূল্য-পাতা দেখুন।
ধাপে ধাপে বানান
ধাপ ১: কোড নয়, বটটি বর্ণনা করুন
একটি প্রথম প্রম্পট যেখানে শ্রোতা, পরিধি, তথ্য এবং নিরাপত্তা নিয়ম বলা আছে, সেটিই বেশির ভাগ পথ এগিয়ে দেয়:
Oakline-এর জন্য একটি গ্রাহক সহায়তা চ্যাটবট বানাও, Oakline একটি বাইক মেরামতের দোকান। একটি চ্যাট পেজ, যাতে বার্তার তালিকা ও ইনপুট থাকবে এবং উত্তর লেখার সাথে সাথে ধাপে ধাপে দেখাবে। একটি সার্ভার রুট থেকে গোপন ANTHROPIC_API_KEY ব্যবহার করে Anthropic API ডাকো, কোনো অবস্থাতেই key ব্রাউজারে দেবে না। একটি system prompt ব্যবহার করো যা শুধু shop-info.md ফাইলের লেখা থেকে সেবা, দাম ও সময় নিয়ে উত্তর দেয়, আর অন্য সব প্রশ্নে বলে "আমি নিশ্চিত নই, নিচের নম্বরে আমাদের কল করুন।" বার্তা ৫০০ অক্ষরে সীমিত করো, এবং প্রতি দর্শক প্রতি ঘণ্টায় ২০টি বার্তা পাবে। পরিষ্কার, বন্ধুত্বপূর্ণ ডিজাইন যা ফোনে ভালো চলে।
ধাপ ২: key-টি secret হিসেবে যোগ করুন
প্রদানকারীর কনসোলে key তৈরি করুন, তারপর প্রজেক্টের environment variable বা secret-এ রাখুন, চ্যাটে বা কোডে নয়। কোনো key কখনো প্রকাশ্যে চলে গেলে প্রদানকারীর কাছে তা বাতিল করে নতুন তৈরি করুন। environment variable ও secret কী ব্যাখ্যা করে কেন এটি গুরুত্বপূর্ণ।
ধাপ ৩: ইন্টারফেস নয়, উত্তরের মান পরীক্ষা করুন
চ্যাট কাজ শুরু করলে বেশির ভাগ সময় উত্তরের মানের পেছনে দিন। প্রায় ২০টি আসল প্রশ্নের একটি তালিকা রাখুন, তার মধ্যে কয়েকটি এমন যা প্রত্যাখ্যাত হওয়া উচিত, আর প্রতিটি prompt বদলানোর পর সেগুলো চালান। দেখুন:
- পরিধির মধ্যে থাকছে কি না?
- জানা না থাকলে বানিয়ে উত্তর না দিয়ে স্বীকার করছে কি না?
- কেউ নির্দেশনা উপেক্ষা করাতে চাইলে টিকে থাকছে কি না?
- ব্রাউজারে ডাউনলোড হওয়া কোনো কিছুতে key নেই তো?
ধাপ ৪: প্রয়োজন হলে স্মৃতি ও অ্যাকাউন্ট যোগ করুন
একক কথোপকথন কাজ করা শুরু করলে, ডাটাবেসে সংরক্ষিত থ্রেড এবং প্রয়োজনে সাইন-আপ ও লগইন চান, যাতে প্রতি ব্যবহারকারী শুধু নিজের চ্যাট দেখে। একই সময়ে প্রতি ব্যবহারকারীর দৈনিক বার্তার সীমাও যোগ করুন।
ধাপ ৫: সীমা চালু রেখে প্রকাশ করুন
নিশ্চিত করুন প্রকাশিত অ্যাপে প্রিভিউয়ের মতোই secret আছে, প্রদানকারীর কাছে খরচের সীমা ঠিক করা আছে এবং ত্রুটিগুলো এমন কোথাও লগ হচ্ছে যেখানে আপনি দেখতে পাবেন। তারপর মূল সাইটে দেওয়ার আগে একটি ছোট দলের সাথে শেয়ার করুন।
নিরাপত্তা ও আস্থা
একটি চ্যাটবট আপনার নামে জনসাধারণের সাথে কথা বলে, তাই এর ব্যর্থতার দায় আপনার:
- ভুল উত্তর। মডেল মিথ্যা কথা আত্মবিশ্বাসের সাথে বলতে পারে। বটকে সংকীর্ণ বিষয়ে রাখুন, নিজের কনটেন্টে ভিত্তি দিন, আর গুরুত্বপূর্ণ বিষয়ে একটি ছোট নোট দেখান যে উত্তর ভুলও হতে পারে।
- Prompt injection। ব্যবহারকারী (বা বট যে নথি পড়ে) এমন নির্দেশনা রাখতে পারে যেমন "আগের নিয়ম উপেক্ষা করো"। বটকে এমন ক্ষমতা দেবেন না যা তার উপর ভরসা করা যায় না: ফেরত, মুছে ফেলা বা ব্যবহারকারীর কথায় ইমেইল পাঠানো নয়, আপনার নিজের কোডে যাচাই ছাড়া।
- স্পর্শকাতর বিষয়। চিকিৎসা, আইনি বা আর্থিক প্রশ্নে পরামর্শ না দিয়ে পেশাদারের কাছে পাঠান।
- ব্যক্তিগত তথ্য। প্রয়োজন ছাড়া prompt-এ গ্রাহকের রেকর্ড পেস্ট করবেন না, আর প্রদানকারীর শর্তে API ডাটা কীভাবে পরিচালিত হয় তা দেখুন।
আমাদের AI দিয়ে বানানো অ্যাপের নিরাপত্তা চেকলিস্ট পুরো অ্যাপের বিস্তারিত দেখায়।
সাধারণ ভুল
- ব্রাউজার থেকে প্রদানকারীকে ডাকা। key ফাঁস হয়ে যায়। সবসময় আপনার সার্ভার দিয়ে যান।
- প্রকাশ্য বটে কোনো সীমা না রাখা। একটি স্ক্রিপ্ট এক বিকেলেই একমাসের বাজেট শেষ করে দিতে পারে।
- একসাথে RAG, টুল ও একাধিক মডেল দিয়ে শুরু করা। আগে একটি ভালো কথোপকথন চালু করুন; আসল প্রশ্ন দেখালে তখন বাকিগুলো যোগ করুন।
- শুধু বন্ধুত্বপূর্ণ প্রশ্ন পরীক্ষা করা। প্রথম দিনেই ব্যবহারকারীরা অদ্ভুত, বিদ্বেষপূর্ণ ও বিষয়বহির্ভূত প্রশ্ন করবে।
- থ্রেড চিরকাল বড় হতে দেওয়া। প্রতিটি বার্তায় খরচ ও উত্তরের সময় বাড়তে থাকে।
কখন তৈরি পণ্যই ভালো পছন্দ
নিজের বানানো তখনই অর্থবহ যখন চ্যাটবট আপনার পণ্যের অংশ, আপনার নিজের ডেটা বা কাজের প্রবাহ দরকার, অথবা নির্দিষ্ট চেহারা ও আচরণ দরকার। নিম্নলিখিত ক্ষেত্রে এটি প্রায়ই ভুল সিদ্ধান্ত:
- আপনি শুধু একটি বিদ্যমান ওয়েবসাইটে সাপোর্ট উইজেট চান। অনেক হেল্পডেস্ক ও লাইভ-চ্যাট পণ্যে এখন AI উত্তর-বট আছে, যা আপনার help centre পড়ে, মানুষের কাছে হস্তান্তর, ইনবক্স ও রিপোর্টিং আগে থেকেই রাখে।
- শুধু আপনি বা আপনার দল ব্যবহার করবে। আপনার নথি আপলোড করে ChatGPT বা Claude-এর মতো সাধারণ সহকারীর সাবস্ক্রিপশনই যথেষ্ট হতে পারে।
- আপনার কঠোর সম্মতির নিশ্চয়তা দরকার (যেমন নিয়ন্ত্রিত স্বাস্থ্য বা আর্থিক ডেটা)। যে বিক্রেতার আগে থেকেই সার্টিফিকেশন আছে, সে কাস্টম বানানোর চেয়ে নিরাপদ হতে পারে।
Mythex দিয়ে বানানো
Mythex একটি AI app builder: চ্যাটে বটটি বর্ণনা করেন, সে চ্যাট ইন্টারফেস ও সার্ভার-পাশের কল লেখে, লাইভ প্রিভিউতে চালায় এবং একটি প্রকাশ্য URL-এ প্রকাশ করে। আপনার অ্যাপের ভেতরের AI আপনার নিজের প্রদানকারীর key ব্যবহার করে। আপনি তা প্রজেক্টের secret-এ যোগ করেন, অথবা প্রয়োজন হলে Mythex চ্যাটে যে secret কার্ড দেখায় সেটি দিয়ে। প্রদানকারীর ব্যবহার আপনার প্রদানকারী অ্যাকাউন্টে বিল হয়, Mythex-এর build ক্রেডিটে নয়। আপনার অ্যাপের ব্যবহারকারীদের জন্য Mythex টোকেন দেয় না, কোনো বিল্ট-ইন জ্ঞানভান্ডার পণ্য দেয় না, আর তৈরি রেট লিমিটও দেয় না: এগুলো আপনি চেয়ে নেবেন ও পরীক্ষা করবেন। আপনার অ্যাপে AI যোগ করা নিয়ে ডকস পাতা ধাপগুলো দেখায়, এবং নিজের API key দিয়ে AI যোগ করুন-এ একটি শুরুর prompt আছে।
বটের সংরক্ষিত থ্রেড লাগলে, চাইলে Mythex প্রজেক্টে একটি Postgres ডাটাবেস যুক্ত করে। অ্যাপে AI ফিচার বানানোর আরও উপায়ের জন্য, সারসংক্ষেপ থেকে শ্রেণিবিভাগ পর্যন্ত, দেখুন আপনার অ্যাপে AI ফিচার কীভাবে যোগ করবেন, অথবা শুরু করার জন্য অ্যাপ টেমপ্লেট ব্রাউজ করুন।
প্রশ্নোত্তর
একটি AI চ্যাটবট অ্যাপ বানাতে কি নিজের API key লাগবে?
প্রায় সব ক্ষেত্রেই লাগবে। চ্যাটবট প্রতিটি বার্তা OpenAI, Anthropic বা Google-এর মতো কোনো মডেল প্রদানকারীর কাছে পাঠায়, আর প্রদানকারী সেই API key-র মালিক অ্যাকাউন্টকে বিল করে। key অবশ্যই আপনার সার্ভারে থাকবে, ওয়েব পেজে কখনো নয়।
একটি AI চ্যাটবট চালাতে কত খরচ হয়?
প্রদানকারীরা প্রতি টোকেন হিসেবে চার্জ করে, অর্থাৎ আপনার পাঠানো লেখা ও মডেলের ফেরত দেওয়া লেখা দুটোরই হিসাব হয়, আর মডেলভেদে দাম অনেক আলাদা। প্রতিটি নতুন বার্তায় সাধারণত পুরো কথোপকথন আবার পাঠানো হয়, তাই দীর্ঘ চ্যাটের প্রতিটি বার্তার খরচ ছোট চ্যাটের চেয়ে বেশি। প্রদানকারীর মূল্য-পাতা দেখুন এবং তাদের ড্যাশবোর্ডে একটি খরচের সীমা ঠিক করে রাখুন।
আমার নিজের নথির ওপর কি চ্যাটবট প্রশিক্ষণ দেওয়া যায়?
সাধারণত মডেলটিকে নিজে প্রশিক্ষণ দেওয়া হয় না। সামান্য কনটেন্টের জন্য সেটি সরাসরি system prompt-এ বসিয়ে দেন; বড় লাইব্রেরির ক্ষেত্রে সেটি সংরক্ষণ করেন, প্রতিটি প্রশ্নের জন্য প্রাসঙ্গিক অংশ খুঁজে বের করেন এবং শুধু সেই অংশগুলো মডেলে পাঠান। দ্বিতীয় এই পদ্ধতিকে retrieval-augmented generation বা RAG বলা হয়।
কোডিং ছাড়া কি AI চ্যাটবট বানানো যায়?
হ্যাঁ। একটি AI app builder সাধারণ ভাষার বর্ণনা থেকে চ্যাট ইন্টারফেস, মডেল ডাকার সার্ভার রুট এবং সংরক্ষিত কথোপকথনের জন্য ডাটাবেস লিখে দিতে পারে। প্রদানকারীর অ্যাকাউন্ট ও API key আপনাকেই নিজে তৈরি করতে হবে।