این روزا خیلی چت بات ها داغ شدن گفتم یاد بدم چجوری یک چت بات بسازین,بدون گفتن حرف های اضافه سریع بریم سر اصل مطلب
ساده ترین توضیح به رباتی که باهاش چت میکنن چت بات میگن و اگه یکم با جزییات بیشتر بخوام بگم یک برنامه ای هست که بهش یک پیغامی رو میدیم پردازش میکنه و میخونه(یعنی میتونه متن رو درک کنه که چی توش گفته شده و خواسته چی هست) و بر اساس اون متن یک جوابی میده
حالا اگه قرار باشه یک چت بات خفن رو از صفر خودتون پیاده کنین خیلی چالشا هست از جمله:
توانایی ایجاد یه مدل پردازش متن به همراه یه تیم حفن که روش زمان زیادی کار کنن شاید چنیدن سال و سرمایه مالی هنگفت.
یه راه راحت تری هم وجود داره اونم استفاده از سرویس های ارایه دهنده چت بات که بر بستر api از اون میشه استفاده کرد(همون جمله معروف:همیشه که قرار نیس چرخو بسازیم)
یکی از معروف ترین این سرویس ها کمپانی OpenAi که درواقع سازنده همین ChatGpt هست
غیر از چت بات OpenAi سرویس های زیادی که با هوش مصنوعی کار میکنن داره از جمله تبدیل صدا به متن,تبدیل متن به عکس که از هرکدوم به راحتی میتونین استفاده بکنین
در ادامه میگم که چطور سوالاتونو رو به OpenAi برسونین و جواب بگیرین و باقی سرویس هارو به خودتون میسپرم
در این لینک میتونین داکیومنت رسمی خود OpenAi رو برای استفاده از سرویس ها ببینین.
این نکته رو توجه داشته باشید که برای استفاده از این API نیاز به هزینه هست اما به بعضی اکانت ها چندین دلار استفاده رایگان میده برای مثال به اکانت من 18 دلار داد اما این مقدار شانسی هست
اول از همه یک اکانت openai بسازید سپس در این لینک یک Secret Key بگیرید که در ادامه برای احراز هویت از اون استفاده میکنیم
سپس پکیج openai رو نصب میکنیم
pip install openai
و در ادامه با این قطعه کد میتوانید پیام خود را ارسال کنید
import openai
completion = openai.Completion.create(api_key='Secret Key',engine='text-davinci-003',prompt='What is bnana? ',max_tokens=1000,n=1,temperature=0.7)
در اینجا ابتدا پکیج را وارد میکنیم کردیم و با استفاده از ابجکت Completion متد create را فراخوانی میکنیم و به این صورت پیام خود را ارسال میکنیم.
ارگومان هایی که میگیره:
پاسخ به کا یک json برمیگردونه که برای رسیدن مستقیم به جواب این مقدار رو قرار میدیم
response = completion.choices[0].text.strip()
در اینجا مقدار choices اولین ایندکس ان را میگیریم(اکر n را بیشتر از 1 بذاریم به همون تعداد جواب تولید میشه و در اینجا میشه حلقه فور زد و تمام جواب ها را در یک ارایه ریخت) سپس text ان را میگیریم و با متد strip فاصله های ان را حذف میکنیم در نهایت جواب خام ما در response قرار دارد
این ساده ترین حالت ارسال یک متن و گرفتن جواب بود اپشن های زیادی وجود داره برای مثال چت هارو توی یک سشن قرار بدین تا به پیام های قبلی هم دسترسی داشته باشه یا خیلی اپشن های دیگ که برای مشاهده بیشتر میتونین داکیومنت رو مشاهده کنین
یک پکیج پایتونی هم برای راحت تر کردن ساخت چت بات مشابه چت جی پی تی وجود به اسم revChatGPT داره اما متاسفانه داکیومنت کاملی نداره ,برای دسترسی به این پکیج میتونین از این لینک به گیت هاب پروژه دسترسی پیدا کنین.
شما میتونین چت باتتون رو به هر برنامه ای وصل کنید و هرطور که دوست داشتید کاستومایز کنین و برای نمونه میتونین این کد رو در گیت هابم ببینین که من با استفاده از html,tailwind.css,js در فرانت اند و python,flask در بکند یک چت بات ساده رو پیاده کردم