قم بإنشاء أدوات الذكاء الاصطناعي الخاصة بك في بايثون باستخدام واجهة برمجة التطبيقات (API) المفتوحة من OpenAI

بما أن OpenAI الآن يدعم نماذج تصل إلى GPT-4 Turbo، فإن المطورين الذين يستخدمون Python لديهم فرصة رائعة لاستكشاف وظائف الذكاء الاصطناعي المتقدمة. يوفر هذا البرنامج التعليمي نظرة مفصلة حول كيفية دمج واجهة برمجة التطبيقات ChatGPT في سيناريوهات Python الخاصة بك، مرشدًا لك خلال مراحل الإعداد الأولية وصولًا إلى استخدام الواجهة برمجة التطبيقات بفعالية.

تشير واجهة برمجة التطبيقات ChatGPT إلى واجهة البرمجة التي تتيح للمطورين التفاعل مع نماذج GPT واستخدامها لتوليد الاستجابات المحادثة. ولكنها في الواقع مجرد واجهة برمجة تطبيقات عامة لـ OpenAI تعمل مع جميع نماذجهم.

وبما أن GPT-4 Turbo أكثر تقدمًا وأرخص بثلاثة أضعاف من GPT-4، لم يكن هناك أبدًا أفضل وقت للاستفادة من هذه الواجهة القوية في Python، لذا فلنبدأ!

Table of Contents

تهيئة بيئتك

للبدء، سنرشدك خلال عملية تهيئة بيئتك للعمل مع واجهة برمجة التطبيقات (API) لـ OpenAI في Python. الخطوات الأولية تشمل تثبيت المكتبات الضرورية، وتهيئة وصول API، والتعامل مع مفاتيح API والتوكيد.

تثبيت المكتبات الضرورية لـ Python

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

python -m venv chatgpt_env

قم بتنشيط البيئة الافتراضية بتشغيل:

  • chatgpt_env\Scripts\activate (Windows)
  • source chatgpt_env/bin/activate (macOS أو Linux)

بعد ذلك، ستحتاج إلى تثبيت المكتبات الضرورية لـ Python التي تشمل مكتبة عميل OpenAI للتفاعل مع واجهة برمجة التطبيقات (API) لـ OpenAI، وحزمة python-dotenv لمعالجة التكوين. لتثبيت كلتا الحزمتين، قم بتشغيل الأمر التالي:

pip install openai python-dotenv

تهيئة وصول OpenAI API

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

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

صفحة مفاتيح API في OpenAI

مفتاح API المولد والذي يمكن استخدامه الآن

مفتاح API والتوثيق

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

  1. قم بإنشاء ملف يسمى .env في مجلد مشروعك.

  2. أضف السطر التالي إلى ملف .env، واستبدل your_api_key بالمفتاح API الفعلي الذي نسخته سابقًا: CHAT_GPT_API_KEY=your_api_key.

  3. في رمز Python الخاص بك، قم بتحميل مفتاح API من ملف .env باستخدام دالة load_dotenv من حزمة python-dotenv:

  import openai
  from openai import OpenAI
  import os
  from dotenv import load_dotenv

  # تحميل مفتاح API من ملف .env
  load_dotenv()
  client = OpenAI(api_key=os.environ.get("CHAT_GPT_API_KEY"))

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

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

تذكر إضافة مقطع الكود أعلاه إلى كل قسم كود أدناه قبل التشغيل.

استخدام API OpenAI في Python

بعد تحميل API من ملف .env، يمكننا بالفعل البدء في استخدامه داخل Python. لاستخدام API OpenAI في Python، يمكننا إجراء طلبات API باستخدام كائن العميل. ثم يمكننا تمرير سلسلة من الرسائل كمدخلات إلى API واستلام رسالة مولدة من نموذج كمخرجات.

إنشاء طلب ChatGPT بسيط

  1. تأكد من إكمال الخطوات السابقة: إنشاء بيئة افتراضية، تثبيت المكتبات اللازمة، وتوليد مفتاح سر OpenAI الخاص بك وملف .env في دليل المشروع.

  2. استخدم مقطع الكود التالي لإعداد طلب ChatGPT بسيط:

  # إنشاء إكمال للدردشة
  chat_completion = client.chat.completions.create(
      model="gpt-4",
      messages=[{"role": "user", "content": "query"}]
  )
  print(chat_completion.choices[0].message.content)

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

استبدل query بالموجز الذي ترغب في تشغيله، ولا تتردد في استخدام أي نموذج GPT مدعوم بدلاً من GPT-4 المختار أعلاه.

التعامل مع الأخطاء

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

# حاول إنشاء إكمال للدردشة
try:
    chat_completion = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": "query"}],
        temperature=1,
        max_tokens=150  # قم بتعديل عدد الأحرف كما هو مطلوب
    )
    print(chat_completion.choices[0].message.content)

except openai.APIConnectionError as e:
    print("The server could not be reached")
    print(e.__cause__)

except openai.RateLimitError as e:
    print("A 429 status code was received; we should back off a bit.")

except openai.APIStatusError as e:
    print("Another non-200-range status code was received")
    print(e.status_code)
    print(e.response)

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

الآن إليك بعض الطرق التي يمكنك من خلالها تكوين طلبات API الخاصة بك أكثر:

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

إذا لم يتم تعيين أي معلمة بشكل متخصص، فإنها تستخدم القيمة الافتراضية المقابلة للنموذج، مثل 0 – 7 و 1 لـ GPT-3.5-turbo و GPT-4 على التوالي.

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

ومع ذلك، لا يزال من الضروري توفير المطالبات الفعالة والمتعلقة بالسياق، بغض النظر عن عدد التكوينات المعلمية التي تتم.

تقنيات متقدمة في تكامل API

في هذا القسم، سنستكشف تقنيات متقدمة لدمج واجهة برمجة التطبيقات (API) لـ OpenAI في مشاريع Python الخاصة بك، مع التركيز على أتمتة المهام، استخدام طلبات Python لاسترداد البيانات، وإدارة طلبات API كبيرة الحجم.

أتمتة المهام باستخدام API OpenAI

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

إليك مثالًا على كيفية أتمتة مهمة باستخدام API OpenAI:

def automated_task(prompt):
    try:
        chat_completion = client.chat.completions.create(
            model="gpt-4",
            messages=[{"role": "user", "content": prompt}],
            max_tokens=250
        )
        return chat_completion.choices[0].message.content
    except Exception as e:
        return str(e)

# مثال على الاستخدام
generated_text = automated_task("Write an short note that's less than 50 words to the development team asking for an update on the current status of the software update")
print(generated_text)

تأخذ هذه الدالة موجهًا وتعيد النص المولد كناتج.

استخدام طلبات Python لاسترداد البيانات

يمكنك استخدام مكتبة requests الشهيرة للتفاعل مباشرة مع API OpenAI دون الاعتماد على مكتبة OpenAI. هذه الطريقة تمنحك المزيد من السيطرة على طلب الحصول، والمرونة على مكالمات API الخاصة بك.

المثال التالي يتطلب مكتبة requests (إذا لم تكن لديك، فقم بتشغيل pip install requests أولاً):

headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {api_key}',
}

data = {
    'model': 'gpt-4',  # قم بالتحديث إلى النموذج المرغوب
    'messages': [{'role': 'user', 'content': 'Write an interesting fact about Christmas.'}]
}

response = requests.post('https://api.openai.com/v1/chat/completions', headers=headers, json=data)
print(response.json())

هذا المخطط البرمجي يوضح عمل طلب POST إلى API OpenAI، مع الرؤوس والبيانات كوسائط. يمكن تحليل الاستجابة التجزئية واستخدامها في مشروع Python الخاص بك.

إدارة طلبات API كبيرة الحجم

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

  • التجميع. اجمع طلبات متعددة في مكالمة API واحدة، باستخدام معامل n في مكتبة OpenAI: n = عدد_الاستجابات_المطلوبة.
  • الحد الأقصى للطلبات. أعد تصميم نظام لتحديد معدل صادرات المكالمات الى الـAPI، مما يمنع استخدامات مفرطة أو طرح الأحمال على الـAPI.
  • التخزين المؤقت. حفظ نتائج الطلبات الـAPI المنجزة لتجنب المكالمات الزائدة لمشاكل أو طلبات مماثلة.

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

تطبيق هذه التقنيات المتقدمة في مشاريع Python الخاصة بك سيساعدك على الاستفادة الأفضل من API OpenAI مع التأكد من تكامل الـAPI الكفء والقابل للتوسع.

التطبيقات العملية: API OpenAI في المشاريع الحقيقية

دمج API OpenAI في مشاريعك الحقيقية يمكن أن يوفر العديد من الفوائد. في هذا القسم، سنناقش تطبيقين محددين: دمج ChatGPT في تطوير الويب وبناء روبوتات الدردشة باستخدام ChatGPT وPython.

دمج ChatGPT في تطوير الويب

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

ضع في اعتبارك هذا المثال البسيط لاستخدام دعوة API من خلفية بايثون:

def generate_content(prompt):
    try:
        response = client.chat.completions.create(
            model="gpt-4",
            messages=[{"role": "user", "content": prompt}]
        )
        return response.choices[0].message.content
    except Exception as e:
        return str(e)

# استخدم هذه الدالة لإنشاء المحتوى
description = generate_content("Write a short description of a hiking backpack")

يمكنك بعد ذلك أيضا كتابة الشفرة لدمج description مع HTML وJavaScript الخاص بك لعرض المحتوى المولد على موقع الويب الخاص بك.

بناء روبوتات المحادثة باستخدام ChatGPT وPython

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

ضع في اعتبارك هذا المثال لمعالجة مدخلات المستخدم والحصول على رد:

def get_chatbot_response(prompt):
    try:
        response = client.chat.completions.create(
            model="gpt-4",
            messages=[{"role": "user", "content": prompt}]
        )
        return response.choices[0].message.content
    except Exception as e:
        return str(e)

# اتخاذ مدخلات المستخدم من سطر الأوامر
user_input = input("Enter your prompt: ")
response = get_chatbot_response(user_input)
print(response)

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

بالنظر إلى المنطق المذكور، قد تبدو شفرتنا النهائية الكاملة لتشغيل روبوت المحادثة على نقطة تواصل OpenAI API هكذا:

from openai import OpenAI
import os
from dotenv import load_dotenv

# تحميل مفتاح الـ API من ملف .env
load_dotenv()
client = OpenAI(api_key=os.environ.get("CHAT_GPT_API_KEY"))

def get_chatbot_response(prompt):
    try:
        response = client.chat.completions.create(
            model="gpt-4",
            messages=[{"role": "user", "content": prompt}]
        )
        return response.choices[0].message.content
    except Exception as e:
        return str(e)

while True:
    user_input = input("You: ")
    if user_input.lower() in ["exit", "quit"]:
        print("Chat session ended.")
        break
    response = get_chatbot_response(user_input)
    print("ChatGPT:", response)

هذا مثال على كيف يبدو عند تشغيله في محطة الأوامر في ويندوز.

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

قيود وتسعير API OpenAI

على الرغم من قوة API OpenAI، هناك بعض القيود:

  • تخزين البيانات. تحتفظ OpenAI ببياناتك الخاصة بـ API لمدة 30 يوما، واستخدام API يعني موافقة على تخزين البيانات. كن حذراً بشأن البيانات التي ترسلها.

  • سعة النموذج. تتمتع نماذج الدردشة بحد أقصى لعدد الرموز. (على سبيل المثال، GPT-3 يدعم 4096 رمزًا.) إذا تجاوز طلب API هذا الحد، ستحتاج إلى قص النص أو تجاهله.

  • التسعير. API OpenAI ليس متاحًا مجاناً ويتبع خطته الخاصة للتسعير، منفصلة عن رسوم اشتراك النموذج. لمزيد من المعلومات حول التسعير، راجع تفاصيل تسعير OpenAI. (مرة أخرى، GPT-4 Turbo أرخص بثلاثة أضعاف من GPT-4!)

الخاتمة

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

إذا استمتعت بهذا البرنامج التعليمي ، قد تستمتع أيضًا بهذه:

Source:
https://www.sitepoint.com/python-build-ai-tools-openai-api/