Pooya Rezaee
Pooya Rezaee
خواندن ۴ دقیقه·۲ سال پیش

ساخت چت بات مشابه ChatGpt در پایتون

این روزا خیلی چت بات ها داغ شدن گفتم یاد بدم چجوری یک چت بات بسازین,بدون گفتن حرف های اضافه سریع بریم سر اصل مطلب


چت بات چی هست؟

ساده ترین توضیح به رباتی که باهاش چت میکنن چت بات میگن و اگه یکم با جزییات بیشتر بخوام بگم یک برنامه ای هست که بهش یک پیغامی رو میدیم پردازش میکنه و میخونه(یعنی میتونه متن رو درک کنه که چی توش گفته شده و خواسته چی هست) و بر اساس اون متن یک جوابی میده

حالا اگه قرار باشه یک چت بات خفن رو از صفر خودتون پیاده کنین خیلی چالشا هست از جمله:

توانایی ایجاد یه مدل پردازش متن به همراه یه تیم حفن که روش زمان زیادی کار کنن شاید چنیدن سال و سرمایه مالی هنگفت.

این که سخت شد !

یه راه راحت تری هم وجود داره اونم استفاده از سرویس های ارایه دهنده چت بات که بر بستر 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 را فراخوانی میکنیم و به این صورت پیام خود را ارسال میکنیم.

ارگومان هایی که میگیره:

  • api_key:سکرت کی که از سایت گرفتین اینجا قرار میدین
  • engine:مدل انجینی که قراره از اپن استفاده بشه,openai برای ما مدل انجین های متنوعی قرار داده که هرکدوم برای کار های مختص خودش بهینه شده و هزینه های متفاوتی داره و میتونین از این لینک نگاهی به مدل ها بندازین
  • prompt:پیغامی که قرار ارسال بکنیم که
  • max_tokens:برای هر درخواست مقدار توکنی مصرف میشه که برای مشخص کردن اینکه حداکثر چقدر مصرف بشه مقدار ان را وارد میکنیم که باید یک عدد اینتیجر باشه
  • n:تعدا پاسخ هایی که تولید کند
  • temperature:میزان خلاقیت را مشخص میکنیم که 0.1 تا 2 میشه مقدار داد و هرچه این عدد بیشتر باشه توکن بیشتری مصرف میشه

پاسخ به کا یک json برمیگردونه که برای رسیدن مستقیم به جواب این مقدار رو قرار میدیم

response = completion.choices[0].text.strip()

در اینجا مقدار choices اولین ایندکس ان را میگیریم(اکر n را بیشتر از 1 بذاریم به همون تعداد جواب تولید میشه و در اینجا میشه حلقه فور زد و تمام جواب ها را در یک ارایه ریخت) سپس text ان را میگیریم و با متد strip فاصله های ان را حذف میکنیم در نهایت جواب خام ما در response قرار دارد



این ساده ترین حالت ارسال یک متن و گرفتن جواب بود اپشن های زیادی وجود داره برای مثال چت هارو توی یک سشن قرار بدین تا به پیام های قبلی هم دسترسی داشته باشه یا خیلی اپشن های دیگ که برای مشاهده بیشتر میتونین داکیومنت رو مشاهده کنین

یک پکیج پایتونی هم برای راحت تر کردن ساخت چت بات مشابه چت جی پی تی وجود به اسم revChatGPT داره اما متاسفانه داکیومنت کاملی نداره ,برای دسترسی به این پکیج میتونین از این لینک به گیت هاب پروژه دسترسی پیدا کنین.

شما میتونین چت باتتون رو به هر برنامه ای وصل کنید و هرطور که دوست داشتید کاستومایز کنین و برای نمونه میتونین این کد رو در گیت هابم ببینین که من با استفاده از html,tailwind.css,js در فرانت اند و python,flask در بکند یک چت بات ساده رو پیاده کردم


هوش مصنوعیchatgptchatbotpythonopenai
یک گیک و عاشق تکنولوژی, بکند دولوپر پایتون و دانشجوی مهندسی کامپیوتر
شاید از این پست‌ها خوشتان بیاید