اذهب إلى المحتوى

مرحبًا بكم في المقالة الثالثة في سلسلة مقالاتنا المتعلقة بروبوت المحادثة ChatGPT، التي سنتحدث فيها عن استخدام ChatGPT API. وفي حالة عدم الاطلاع على المقال الأول والثاني بعد، ففي المقالة الأولى ستتعرف على بوت المحادثة الذكي شات جي بي تي ChatGPT، حيث تحدثنا عن ما هو ChatGPT وكيف بدأ، ومراحل تطويره، وفوائده ومميزاته، وقارناه مع غيره من روبوتات المحادثة المزودة بالذكاء الاصطناعي، كما تناولنا مختلف تطبيقات استخدام ChatGPT، والقيود والتحديات التي تواجهه، وكيفية الوصول إليه واستخدامه.

أما في المقالة الثانية فقد تحدثنا عن عملية تدريب روبوت المحادثة ChatGPT والتقنيات المختلفة المستخدمة في تطويره، واستكشفنا المفاهيم الأساسية التي تُمكِّن الروبوت من الحفاظ على محادثات طبيعية وبديهية مع البشر؛ كما تناولنا تقنيات وخوارزميات التعلم الآلي التي تُستخدم لتدريب ChatGPT، ومجموعات البيانات التي تمكنه من فهم تفاصيل لغة الإنسان، كما استكشفنا دور التعلم غير الخاضع للإشراف الذي يسمح لـ ChatGPT بالتعلم والتحسن من خلال الخبرات، مما جعله أداةً مفيدةً لمختلف الصناعات.

و في هذا المقال سنتناول تفصيلًا كيفية استخدام ChatGPT API وتطبيقاتها المختلفة. سنبدأ بتوضيح مفهوم واجهة برمجة التطبيقات والمعروفة اختصارًا بـ API ومزايا استخدامها، ثم سنركز على API الخاص بـ ChatGPT وكيفية استخدامه في توليد النصوص، بعد ذلك سنتحدث عن تفاصيل استخدام ChatGPT API ونقدم أمثلةً حول كيفية استخدامه في التطبيقات المختلفة، وفي النهاية سنتحدث عن المشاكل التي يمكن أن تواجه استخدام ChatGPT API وكيفية حلها.

إذا كنت تبحث عن طريقة لتحسين تجربتك على الإنترنت أو تطوير تطبيقك الذكي، فمن المهم متابعة هذا المقال للتعرف على كيفية استخدام ChatGPT API وتطبيقه في أعمالك ومشاريعك، فهذه التقنية توفر فرصًا هائلةً لتحسين خدماتكم، لذا لا تتردد في الاستفادة منها واستكشاف كل ما تقدمه.

مدخل إلى واجهة برمجة التطبيقات API

واجهة برمجة التطبيقات أو Application Programming Interface والمعروفة اختصارًا بـ API تُشبه النادل في المطعم الذي يأخذ طلبك ثم يوصله إلى المطبخ، وبنفس الطريقة API هو مجموعة من القواعد والبروتوكولات التي تسمح لتطبيقات البرامج المختلفة بالتواصل مع بعضها بعضًا.

ولتوضيح الأمر بأسلوب بسيط، تخيل أن لديك لعبة تريد اللعب بها لكنك لا تعرف كيفية استخدامها، فدليل التعليمات الذي يخبرك بكيفية استخدام اللعبة يشبه واجهة برمجة التطبيقات، يوفر لك مجموعةً من الإرشادات التي تخبرك بكيفية استخدام اللعبة، تمامًا مثل واجهة برمجة التطبيقات التي تزود المطورين بمجموعة من الإرشادات التي تخبرهم بكيفية التفاعل مع تطبيق برمجي معين.

استخدامات واجهة برمجة التطبيقات API

تُستخدم واجهات برمجة التطبيقات بعدة طرق مختلفة. تخيل مثلًا أن لديك موقع ويب تريد إضافة خريطة إليه، فبدلًا من إنشاء الخريطة من البداية، يمكنك استخدام API مثل Google Maps API التي توفر لك مجموعةً من الإرشادات حول كيفية دمج الخريطة في موقع الويب الخاص بك.

هناك حالة استخدام أخرى لواجهات برمجة التطبيقات في وسائل التواصل الاجتماعي، فيمكنك استخدام واجهات برمجة التطبيقات، مثل Facebook API و Twitter API لإنشاء تطبيقات يمكنها نشر وقراءة التغريدات أو تحديثات الحالة نيابة عن المستخدم.

مزايا استخدام واجهة برمجة التطبيقات API

ولاستخدام واجهة برمجة التطبيقات مزايا كثيرة، فعلى سبيل المثال تسمح بمشاركة الموارد والخدمات مما يوفر الوقت للمطورين، وذلك باستخدام التعليمات البرمجية الموجودة مسبقًا بدلًا من بناء كل شيء من البداية، كما تعمل واجهات برمجة التطبيقات أيضًا على تمكين المطورين من إنشاء تطبيقات جديدة تتكامل مع التطبيقات الحالية، مما يسهل على المستخدمين التفاعل مع تطبيقات متعددة من واجهة واحدة.

وبالإضافة إلى ذلك، يمكن أن تساعد واجهات برمجة التطبيقات في زيادة أمان البيانات، لأنها تسمح بالوصول المتحكم فيه إلى البيانات دون الحاجة إلى منح وصول كامل إلى نظام بأكمله.

وللتعمق أكثر في واجهة برمجة التطبيقات API يمكنك الاطلاع على سلسلة المقالات هذه بالأكاديمية التي تتناول الواجهة البرمجية API وكيفية الاستفادة منها في بناء تطبيق ويب، ولمحبي محتوى الفيديو يمكنهم مشاهدة هذا الفيديو الذي يتناول هذه التقنية بأسلوب شيق.

ما هي ChatGPT API

واجهة برمجة تطبيقات ChatGPT هي أحد منتجات شركة OpenAI، تسمح للمطورين بدمج قدرات معالجة اللغة الطبيعية NLP في تطبيقاتهم وبناء واجهات محادثة ذكية؛ وهذا يعني أنه يمكن للمستخدمين التفاعل مع تطبيقك باستخدام لغة طبيعية تمامًا كما يفعلون مع الأشخاص الآخرين.

تُشغل واجهة برمجة تطبيقات ChatGPT بواسطة أحدث نموذجين للشركة، وهما نموذج GPT-3.5 و GPT-4 اللذان دُربا على كميات هائلة من البيانات النصية لفهم وتوليد ردود شبيهة بالبشر.

الوظائف التي يمكن من خلالها استخدام ChatGPT API

تحتوي واجهة برمجة تطبيقات ChatGPT على العديد من الوظائف التي يمكن استخدامها في العديد من التطبيقات لتحسين الكفاءة والإنتاجية والتواصل، ومن تلك الوظائف ما يلي.

روبوتات الدردشة

روبوت المحادثة هو برنامج يمكنه محاكاة المحادثة مع المستخدم، وباستخدام ChatGPT API يُمكن للمطورين إنشاء روبوتات محادثة تستطيع المشاركة في محادثات تبدو طبيعية مع المستخدمين، مما يساعد على تحسين خدمة العملاء وزيادة الكفاءة.

تخيل أنك تتسوق من خلال متجر إلكتروني ولديك سؤال حول أحد المنتجات. بدلًا من الانتظار أو إرسال بريد إلكتروني لخدمة عملاء المتجر، يمكنك ببساطة كتابة سؤالك في مربع الدردشة ليوفر لك الـ chatbot المدعوم من ChatGPT API استجابةً فورية.

المساعدين الشخصيين

المساعد الشخصي personal assistant هو برنامج يمكن أن يساعد المستخدمين في مهام مختلفة، مثل جدولة المواعيد وتعيين التذكيرات وإرسال الرسائل، حيث يمكن استخدام ChatGPT API لإنشاء مساعدين شخصيين باستطاعتهم فهم اللغة الطبيعية والاستجابة وفقًا لذلك.

على سبيل المثال، يمكنك أن تسأل مساعدك الشخصي المدعوم من واجهة برمجة تطبيقات ChatGPT، "ماذا يوجد في التقويم الخاص بي ليوم غد؟" ويمكنه الرد بقائمة مواعيدك المجدولة.

إنشاء المحتوى

يمكن استخدام ChatGPT API لإنشاء محتوى، مثل المقالات وأوصاف المنتجات ومنشورات الوسائط لمنصات التواصل الاجتماعي، حيث يمكن للمطورين تزويد واجهة برمجة التطبيقات بموجه لإنشاء نص يواصل تقديم المطالبة بطريقة ملائمة وجذابة.

تخيل هنا مثلًا أنك مدون وتحتاج إلى كتابة مقال عن فوائد التمرين، يمكنك هنا ببساطة استخدام ChatGPT API لتوليد بعض الأفكار، ومن ثمة الحصول على اللازمة لكتابة المقال.

ترجمة اللغة

يمكن أيضًا استخدام ChatGPT API لترجمة اللغة، حيث يمكن للمطورين إنشاء تطبيقات باستطاعتها ترجمة النص من لغة إلى أخرى، مما يسهل على الأشخاص الذين يتحدثون لغات مختلفة التواصل مع بعضهم بعضًا؛ ولتخيل أنك في رحلة عمل إلى الصين وتحتاج إلى التواصل مع شخص يتحدث لغة الماندرين، هنا يمكنك ببساطة استخدام تطبيق مدعوم من ChatGPT API لترجمة رسائلك إلى لغة الماندرين، ورسائل الشخص الآخر إلى اللغة العربية، وهذا سيجعل التواصل أسهل بينكما.

اقتباس

إذا كنت ترغب في استكشاف قدرات ChatGPT المذهلة، فإن زيارة الرابط التالي ستكون رحلة رائعة لك: استخدامات ChatGPT المختلفة، فمن خلال هذا الرابط ستتعرف على مجموعة متنوعة من الأمثلة والتطبيقات التي يمكنك استخدام ChatGPT فيها.

خطوات استخدام ChatGPT API

حتى تتمكن من استخدام واجهة برمجة تطبيقات ChatGPT سوف تحتاج إلى اتباع الخطوات التالية:

  1. الخطوة الأولى: إنشاء حساب بموقع OpenAI وهذه الخطوة قد شرحناها بالتفصيل بالمقالة الأولى من هذه السلسلة.
  2. الخطوة الثانية: الحصول على مفتاح API لـ ChatGPT وذلك باتباع الآتي:
  • سجل الدخول إلى موقع OpenAI الرسمي، ثم انقر على اسم الحساب الخاص بك. ومن القائمة المنسدلة التي ستظهر، اختر منها "View API Keys".

واجهة برمجة تطبيقات ChatGPT

  • انقر على زر "Create new secret key" لإنشاء مفتاح سري جديد، لبدء استخدام إمكانات نموذج معالجة اللغة الطبيعية الخاص بـ ChatGPT في التطبيق الخاص بك.

002 استخدام ChatGPT API

  • من النافذة التي ستظهر لك، انسخ مفتاح واجهة برمجة تطبيقات ChatGPT ثم احفظه بمكان آمن لأنه لن يكون قابلًا للعرض مرةً أخرى، وذلك من خلال حساب OpenAI الخاص بك. وفي حالة فقدت مفتاحك، فعندها سوف يتعين عليك إنشاء مفتاح جديد.

003 الخطوة 2 لاستخدام ChatGPT API

من المهم عدم مشاركة المفتاح السري مع الآخرين، وذلك لأن تكلفة استخدامهم للمفتاح السري سوف تُخصم من رصيدك (سوف نوضح هذه النقطة في فقرة التسعير)، كما أن OpenAI تُعطل تلقائيًا أي مفاتيح API مسربة، كما قد تُعطل حسابك بالكامل إذا تكررت عملية تسريب المفاتيح من حسابك.

  • وإذا كنت بحاجة إلى إبطال مفتاح API الخاص بك بسبب تسريبه أو لأسباب أخرى، فيمكنك تنفيذ ذلك من خلال النقر على زر "سلة المهملات" الموجود أمام المفتاح، ومن النافذة التي ستظهر، انقر على زر "Revoke Key" لتعطيل المفتاح، وسيؤدي هذا الإجراء إلى رفض أي طلبات API تُجرى باستخدام هذا المفتاح.

004   الخطوة 3 لاستخدام ChatGPT API

بمجرد حصولك على مفتاح API الخاص بك، يمكنك استخدامه لتثبيت حزمة ChatGPT API في بيئة البرمجة الخاصة بك.

اقتباس

تنويه: من خلال تنفيذ الخطوات السابقة سوف تتمكن من استخدام API الخاص بالنموذج GPT-3.5-turbo، أما بخصوص استخدام API الخاص بأحدث نموذج GPT-4، فهو غير متاح للجميع إلى وقت كتابة هذا المقال، وسوف تحتاج إلى الاشتراك في قائمة الانتظار للحصول عليه من خلال ملئ هذا الطلب.

  • الخطوة الثالثة: استخدام ChatGPT API في تطبيقاتك، وذلك إما من خلال تثبيت مكتبة openai ثم استيرادُها في بيئة البرمجة الخاصة بك، أو من خلال استخدام واجهة برمجة التطبيقات المستندة إلى السحابة، مما يعني أنك لست مضطرًا إلى تثبيت أي برنامج على جهازك لاستخدامها، بل كل ما تحتاجه هو اتصال إنترنت ثابت ومتصفح ويب.

تثبيت واستدعاء مكتبة openai

قبل أن نبدأ، وجب التنويه إلى أن خطوات تثبيت المكتبة تعتمد على لغة البرمجة التي تستخدمها، وفي شرحنا لهذه الطريقة سوف نستخدم لغة البرمجة Python، وفيما يلي مثال لتثبيت مكتبة openai باستخدام pip:

  • أولًا، انتقل إلى موجه الأوامر، ثم اكتب الأمر التالي:
pip install openai

005   واجهة برمجة تطبيقات شات جي بي تي 5

ثم انتظر حتى الانتهاء من تثبيت الحزمة.

006   واجهة برمجة تطبيقات شات جي بي تي 6

  • ثانيًا، أنشئ مجلدًا جديدًا للمشروع وسَمِّه بأي اسم تريده. وبداخل المجلد أنشئ ملفًا نصيًا وسَمِّه بأي اسم تريده ثم انسخ بداخله المفتاح السري لواجهة برمجة التطبيقات. بعد ذلك أنشئ ملف بايثون فارغ وسَمِّه بأي اسم تريده، ثم شغل المحرر المفضل لديك وحدد مسار المجلد.

007   واجهة برمجة تطبيقات شات جي بي تي 7

  • ثالثًا، أضف الشيفرة البرمجية التالية لملف البايثون:
import openai
openai.api_key = open("اسم الملف النصي الذي يحتوي على المفتاح السري", "r").read()
completion = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages = [
    {"role": "user", "content": "الرسالة المراد توجيهها إلى البوت"}
  ]
)
print(completion.choices[0].message)

008   واجهة برمجة تطبيقات شات جي بي تي 8

  • أخيرًا، احفظ شيفرتك البرمجية ثم شغلها. من المفترض أن تتلقى ردًا من ChatGPT على هيئة مصفوفة بتنسيق Json كما بالصورة التالية:

009   واجهة برمجة تطبيقات شات جي بي تي 9

شرح الشيفرة البرمجية

لنلق نظرةً على الشيفرة البرمجية التي استخدمناها لإنشاء دردشة بسيطة مع روبوت المحادثة ChatGPT:

  • بالسطر الأول، نستدعي الوحدة أو المكتبة البرمجية التي ثبتناها "openai" حتى نتمكن من استخدامها.
  • وبالسطر الثاني، نستدعي قيمة المفتاح السري الخاص بنا الذي سوف يمكننا من الوصول إلى واجهة برمجة التطبيقات، وذلك من خلال ملف نصي يسمى "OPENAI_API_KEY.txt" مُخزن بداخله المفتاح بدلًا من كتابته مباشرةً في البرنامج.
  • ومن السطر الثالث إلى الثامن، سينشئ البرنامج متغيرًا جديدًا يسمى completion بمجرد قراءة المفتاح السري، بحيث يستدعي دالةً في مكتبة OpenAI تسمى ()ChatCompletion.create لإنشاء جلسة إتمام دردشة جديدة، وتأخذ هذه الدالة وسيطين: الأول هو اسم نموذج الذكاء الاصطناعي المقدم من OpenAI الذي نريد استخدامه، وفي حالتنا هو نموذج "gpt-3.5-turbo"؛ والثاني هو المتغير messages لتخزين جميع الرسائل المرسلة والمستقبلة خلال الجلسة، وقد عينا لهذا المتغير مصفوفة بتنسيق JSON بها مُطالبة واحدة مكونة من معاملين:
  1. المعامل الأول: عينا له المفتاح role وهو الذي يحدد سلوك المطالبة، وعينا لهذا المفتاح القيمة "User" للإشارة إلى أن الرسالة من المستخدم.
  2. المعامل الثاني: عينا له المفتاح content للإشارة إلى الرسالة المراد إرسالها لروبوت المحادثة، وحددنا لهذا المفتاح القيمة "نص الرسالة"، وفي حالتنا نص الرسالة هي "Hello!".
  • السطر الأخير، يطبع البرنامج الاستجابة المتولدة باستخدام الدالة ()print، ونظرًا إلى أن خوارزمية ChatCompletion قادرة على إرجاع العديد من الردود المحتملة، فقد استخدمنا completion.choices[0].message للوصول إلى الرسالة الأولى في الخيارات المحتملة التي أُرجعت.

توضيح لأدوار المعامل role

بالشيفرة البرمجية السابقة وتحديدًا بالسطر السادس منها استخدمنا معاملًا يسمى role. وظيفة هذا المعامل هي تحديد سلوك أو دور المطالبة من جانب المستخدم، وتحديد سلوك أو دور الاستجابة من جانب الروبوت. ولكي تفهم ما أعنيه من هذا الكلام، تخيل أنك تلعب لعبة لها شخصية تتحدث إليك؛ في هذه الحالة أنت ستكون في دور "المستخدم User" لأنك الشخص الذي يكتب الرسائل إلى الشخصية في اللعبة، أما الشخصية في اللعبة التي تتحدث معك فستكون في دور "المساعد Assistant" لأنها تساعدك وتستجيب لما تقوله.

في بعض الأحيان يتعين على الشخصية التي تتحدث معك في اللعبة أن تقول شيئًا ما من تلقاء نفسها، دون أن تكتب لها أي رسالة، مثل ما تقوله الشخصية إذا فزت بمستوى جديد باللعبة: "تهانينا!"، وفي هذه الحالة ستكون الشخصية في دور "النظام System" لأنها تفعل شيئًا بمفردها.

إذًا، نستنتج من ذلك أن المعامل role له ثلاثة أدوار:

  1. دور المستخدم User: هي المطالبات أو الرسائل التي يقدمها المستخدم إلى الروبوت للإجابة عليها.
  2. دور المساعد Assistant: هي الاستجابة التي يقدمها الروبوت على مطالبات أو رسائل المستخدم، وتكون هذه الاستجابة بسلوك أو نمط المساعد الذي يسخر كل إمكاناته لمساعدة المستخدم في الإجابة على أسئلته، وهو الدور الافتراضي لروبوت المحادثة في حالة عدم تحديد دور استجابة الروبوت بالشيفرة البرمجية كما في حالتنا، فعلى الرغم من عدم إضافتنا لـ role تحدد دور استجابة الروبوت على سؤال المستخدم، إلا أنك ستلاحظ بالصورة السابقة أن استجابة الروبوت عُينت على دور المساعد Assistant.
  3. دور النظام System: هي المطالبات أو الرسائل التي يقدمها الروبوت إلى المستخدم للإجابة عليها، وهنا تتبدل الأدوار بين المستخدم والروبوت، فالروبوت في هذه الحالة هو من يسأل والمستخدم هو من يجيب، فعلى سبيل المثال: يمكننا استخدام هذا الدور عندما يطلب المستخدم من الروبوت أن يمثل دور موظف موارد بشرية الذي يُجري مقابلةً مع المستخدم، وهو ما سوف ننفذه بالفقرة التالية
اقتباس

إذا كنت ترغب في معرفة المزيد حول كيفية استخدام الأدوار في المحادثة، فأنصحك بزيارة الرابط التالي: ChatGPT Message Role، فمن خلال هذا الرابط ستتعرف على كيفية استخدام الأدوار والتحكم في سياق الحوار للحصول على إجابات دقيقة ومفيدة.

إجراء بعض التحسينات على شيفرة المحادثة السابقة

الشيفرة البرمجية السابقة تحتاج إلى إجراء بعض التحسينات حتى يبدو كأننا نستخدم روبوت المحادثة كما نستخدمه من موقع OpenAI، فعلى سبيل المثال: نريد أن نحدد دور الروبوت ليكون System لنجعله يجري معنا مقابلة عمل، ونريد تحسين طريقة إرسال الرسائل إلى الروبوت، فليس من اللائق أن نكتب الرسالة من خلال الشيفرة البرمجية، كما أننا نريد إرسال عدة رسائل في الجلسة الواحدة بدلًا من إرسال رسالة واحدة فقط كما هو في الوضع الحالي، وأخيرًا نريد طباعة محتوى الرسالة فقط من مجموع البيانات التي يستجيب بها الروبوت.

أولاً، أنشئ ملف بايثون جديد داخل مجلد المشروع وسَمِّه بأي اسم تريده، ثم أضف بداخل الملف الجديد الشيفرة البرمجية التالية:

import openai
openai.api_key = open("OPENAI_API_KEY.txt", "r").read()
messages=[{"role": "system", "content": "You're a recruiter who asks tough interview questions."}]
while True:
    content = input("User: ")
    messages.append({"role": "user", "content": content})
    completion = openai.ChatCompletion.create(
      model="gpt-3.5-turbo",
      messages=messages
    )
    chat_response = completion.choices[0].message.content
    print(f'ChatGPT: {chat_response}')

010   واجهة برمجة تطبيقات شات جي بي تي 10

أخيرًا، احفظ شيفرتك البرمجية ثم شغلها، ومن المفترض أن يظهر لك مؤشر لإدخال رسالتك الافتتاحية، ليستجيب لك الروبوت ويعرفك على الدور الذي سينفذه أثناء جلسة المحادثة، كما هو موضح بالصورة التالية:

011   واجهة برمجة تطبيقات شات جي بي تي 11

شرح الشيفرة البرمجية

دعونا نلقي نظرةً على الشيفرة البرمجية بعد تحسينها:

  • السطر الأول والثاني، كما هما لم نغير شئ بهما.
  • السطر الثالث، أضفنا المتغير messages لتخزين جميع الرسائل المرسلة والمستقبلة خلال الجلسة، وعيّنا لهذا المتغير مصفوفةً بتنسيق JSON بها مُطالبة واحدة مكونة من معاملين:
  1. المعامل الأول: عينا له المفتاح role وهو الذي يحدد سلوك استجابة الروبوت، وعينا لهذا المفتاح القيمة "System" ليكون سلوك استجابة الروبوت كدور النظام لهذه الجلسة.
  2. المعامل الثاني: عينا له المفتاح content للإشارة إلى الرسالة المراد إرسالها لروبوت المحادثة، وحددنا لهذا المفتاح القيمة "نص الرسالة" التي تحدد الدور المطلوب من الروبوت تنفيذه، وفي حالتنا طلبنا من الروبوت أن يتصرف كأنه موظف موارد بشرية يدير مقابلة يطرح بها أسئلة صعبة.
  • السطر الرابع، أضفنا حلقة التكرار While تستمر في العمل لانهائيًا لتكرار تنفيذ الشيفرة البرمجية حتى إيقافها يدويًا.
  • السطر الخامس، داخل حلقة التكرار أضفنا المتغير content يُستخدم للحصول على المدخلات من المستخدم، حيث يطلب من المستخدم إدخال نص بدلًا من كتابة نص الرسالة داخل الشيفرة البرمجية، وذلك جنبًا إلى جنب مع البادئة ":User" لتوضيح أن النص المعروض هو رسالة المستخدم.
  • السطر السادس، أضفنا التابع append لإضافة رسالة المستخدم إلى قائمة الرسائل المرسلة إلى الروبوت خلال الجلسة، وبذلك نضمن ردود الروبوت مترابطة ومنطقية لأنه سيكون لديه سجل المحادثة الخاصة بالجلسة، ثم أضفنا لهذا التابع مصفوفة بتنسيق Json بها مُطالبة واحدة مكونة من معاملين:
  1. المعامل الأول: عينا له المفتاح role وهو الذي يحدد سلوك المطالبة، وعينا لهذا المفتاح القيمة "User" للإشارة إلى أن الرسالة من المستخدم.
  2. المعامل الثاني: عينا له المفتاح content للإشارة إلى الرسالة المراد إرسالها لروبوت المحادثة، وحددنا لهذا المفتاح القيمة المتغير content المخزن بداخله محتوى الرسالة التي أدخلها المستخدم.
  • السطر السابع إلى التاسع، لم نغير شيئ إلا بالوسيط الثاني، فقد أضفنا المتغير messages إلى نفسه لتخزين جميع الرسائل المرسلة والمستقبلة خلال الجلسة.
  • السطر الحادي عشر، أضفنا في نهايته التابع content لعرض محتوى نص استجابة الروبوت فقط دون عرض أي تفاصيل أخرى.
  • السطر الأخير، تطبع الدالة print الاستجابة التي أُرسلت من الروبوت، جنبًا إلى جنب مع البادئة ":ChatGPT" لتوضيح أن النص المعروض هو استجابة الروبوت.

وبعد انتهاء تنفيذ السطر الأخير تعيد حلقة التكرار تنفيذ الشيفرة البرمجية مرةً أخرى، وذلك للحصول على إدخال جديد من المستخدم ثم الحصول على استجابة جديدة من الروبوت؛ وهكذا إلى ما لا نهاية حتى تغلق المحادثة يدويًا.

سوف تلاحظ أن أسئلة الروبوت مترابطة ومتسقة مع ردودك عليه، لذا لن تشعر أن الأسئلة التي يسألك عنها متباعدة بين بعضها البعض نوعيًا، بل أنه يتذكر المعلومات التي تقدمها له أثناء جلسة المحادثة ليسألك عنها خلال المقابلة، فعلى سبيل المثال: بالصورة التالية عندما أخبرته في إحدى إجابتي أنني أعمل كمتخصص تكنولوجيا معلومات، بعدها سألني عن مشروع عملت عليه كمتخصص تكنولوجيا معلومات واجهت به صعوبة.

012   واجهة برمجة تطبيقات شات جي بي تي 12

وبناءً على هذا المثال البسيط، يمكنك تطبيق فكرتك التي تريدها من ChatGPT ودمجها مع تطبيقك بطريقة أكثر فعالية، سواء كنت ترغب في تحسين خدمة العملاء، أو الحصول على إجابات سريعة ودقيقة على أسئلتك، أو حتى في تطوير تطبيقات محادثة متقدمة.

تكلفة استخدام ChatGPT API

قبل البدء في الاستفادة من واجهة برمجة تطبيقات ChatGPT من الضروري فهم نظام التسعير الخاص بشركة OpenAI، فالشركة تستخدم مقياسًا اسمه "الرمز المميز Token" الذي يمثل عدد الكلمات والحروف والأرقام والرموز والمسافات التي تُستخدم لإنشاء النص المُدخل إلى ChatGPT API، ويحتسب الرمز المميز وتعتمد كيفية تقسيم الكلمات إلى رموز مميزة أيضًا على اللغة المستخدمة، ولكي تتضح لك الصورة كما يجب فهذه الجملة الإنجليزية "My name is Mostafa Amaan" مكونة من 7 رموز مميزة؛ أما هذه الجملة العربية "أنا اسمى مصطفى أمان" مكونة من 24 رمز مميز، فعلى الرغم من أن عدد الحروف في الجملة العربية أقل من الجملة الإنجليزية، إلا أن عدد الرموز المميزة بالجملة العربية أكبر من الجملة الإنجليزية.

اقتباس

إذا كنت ترغب في معرفة المزيد حول كيفية احتساب الرمز المميز، فأنصحك بزيارة الرابط التالي: ما هو الرمز المميز وكيفية احتسابه، فمن خلال هذا الرابط ستتعرف على كيفية احتساب الرمز المميز حتى لا تقع في فخ استنفاذ رصيدك من الرموز المميزة بسرعة.

حدود الرمز المميز

يُعد حساب عدد الرموز المميزة tokens أمرًا مهمًا، وذلك لأن ChatGPT API تفرض حدًا على عدد الرموز المميزة المسموح به في كل استدعاء، ويتطلب هذا من المستخدمين تقييم عدد الـ tokens المطلوبة لتوليد النص الذي يحتاجونه، ومن ثَمَّ تحدد لهم تكلفة الاستخدام بناءً على هذا الحد.

واعتمادًا على النموذج المستخدم (GPT-3.5-turbo أو GPT-4)، يمكن للمطالبات أو التعليمات prompts استخدام ما يصل إلى 4096 رمزًا مميزًا مشتركًا بين المطالبة prompt والاستجابة؛ بمعنى أنه إذا كانت مطالبتك (رسالتك المرسلة للنموذج) مكونة من 4000 رمزًا مميزًا، فإن الاستجابة (رد النموذج على رسالتك) ستكون مكونة من 96 رمزًا مميزًا فقط.

يُعد هذا الحد حاليًا قيدًا تقنيًا، ولكن غالبًا ما تكون هناك طرائق للتغلب على المشكلات ضمن الحد، فعلى سبيل المثال: من الممكن تكثيف المطالبة، بحيث تستخدم أقل عدد من الكلمات لتوصيل المعنى المطلوب؛ وهنا يُنصح باستخدام هذه الأداة الرسمية التي تتيح إمكانية حساب عدد الرموز المميزة، ومن الممكن أيضًا تقسيم النص إلى أجزاء أصغر ثم تقديم كل جزء في مطالبة مستقلة.

تسعير الرمز المميز

تُقدم واجهة برمجة التطبيقات أنواعًا متعددةً من النماذج بخطط أسعار مختلفة، لذلك تُسعر الطلبات المرسلة إلى هذه النماذج بطريقة مختلفة عن كل نموذج، وهذه هي التفاصيل حول تسعير الرمز المميز لكل نموذج.

الآن، يوجد سؤال يطرح نفسه بقوة، ألا وهو: أنا أملك حسابًا مجانيًا، فما علاقتي بخطط الأسعار هذه؟

نعم OpenAI توفر حسابات مجانية لتجربة النماذج الخاصة بها، لكن في حقيقة الأمر إن هذه الحسابات ليست مجانية بل حسابات مدفوعة، فإذا ذهبت إلى البيانات الخاصة بحسابك ثم انتقلت إلى صفحة "الاستخدام Usage"، سوف تلاحظ وجود رصيد من الأموال بعملة الدولار بحسابك مخصوم منه قيمة استخدام الرموز المميزة، وستلاحظ أيضًا وجود تاريخ لانتهاء صلاحية هذا الرصيد كما هو موضح بالصورة التالية:

013   واجهة برمجة تطبيقات شات جي بي تي 13

وبناءً على ذلك وحتى لا نقع في فخ استنفاذ رصيدنا على استهلاك الرموز المميزة بسرعة، يمكننا تقديم تحسين جديد على الشيفرة البرمجية السابقة لتحديد العدد الأقصى للرموز المميزة التي نقدمها بالمطالبة، وهذا التحسين هو عبارة عن سطر واحد فقط، وهو max_tokens=1024، لتصبح الشيفرة البرمجية كما يلي:

completion = openai.ChatCompletion.create(
      model="gpt-3.5-turbo",
      max_tokens=1024,
      messages=messages
    )

ويمكنك تعديل قيمة الـ max_tokens حتى العدد 2048 وهو العدد الأقصى للرموز المميزة عند استخدام النموذج gpt-3.5-turbo؛ أما في حالة استخدام النموذج GPT-4، فالعدد الأقصى للـ max_tokens هو 4096 رمزًا مميزًا.

بطبيعة الحال، هذه ليست جميع التحسينات التي يمكن إدخالها على هذه الشيفرة البرمجية، لذا يمكنكم المشاركة باقتراح تحسينات على هذه الشيفرة البرمجية

خاتمة

في ختام هذه المقالة، يمكن القول إن واجهة تطبيقات ChatGPT تُعد أحد الحلول المبتكرة في مجال التحدث الآلي وتوليد النصوص، حيث يمكن استخدامها في العديد من التطبيقات المختلفة، فقد وضحنا مفهوم API بشكل عام، وكذلك API الخاص بـ GPT خصوصًا، بالإضافة إلى التفاصيل التقنية لاستخدامه وبعض الأمثلة المحددة لتطبيقاته في المجالات المختلفة.

وعلى الرغم من أن استخدام ChatGPT API يواجه بعض المشاكل التي تحتاج إلى حلول مبتكرة، إلا أن الفوائد التي يمكن الحصول عليها من استخدامه تجعله من الحلول الواعدة في المستقبل.

لذلك، يمكن القول إن استخدام ChatGPT API يمثل خطوةً مهمةً في تحسين الخدمات المقدمة عبر الإنترنت وتحسين تجربة المستخدم، ونتوقع أن يستمر التطور في هذا المجال وظهور العديد من التطبيقات الجديدة التي تعتمد على هذا الحل الواعد.

وإلى هنا نكون قد وصلنا إلى نهاية هذا المقال الذي نتمنى أن يكون قد أضاف لكم معلومات جديدة ومفيدة، وفي حالة وجود أي استفسارات لا تترددوا في ذكرها لنا في التعليقات.

المصادر

اقرأ أيضًا


تفاعل الأعضاء

أفضل التعليقات



انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أضف تعليق

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • أضف...