كيفية التفاعل مع واجهات برمجة التطبيقات باستخدام استدعاء الدوال في Gemini

1. نظرة عامة

ما هو استدعاء الدوال في Gemini؟

Vertex AI Gemini API هي مجموعة من نماذج الذكاء الاصطناعي التوليدي التي طوّرتها Google DeepMind والمصمّمة لحالات الاستخدام المتعدّدة الوسائط. استدعاء الدوال هي ميزة في نماذج Gemini تسهّل على المطوّرين الحصول على نتائج البيانات المنظَّمة من النماذج التوليدية.

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

آلية عمل استدعاء الدوال

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

واجهة API

ما الذي ستقوم ببنائه

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

ما ستتعرَّف عليه

  • كيفية التفاعل مع نموذج Gemini باستخدام مكتبة برامج Python
  • كيفية تعريف تعريف الدالة وتسجيله كأداة
  • كيفية الاتصال بـ Gemini والحصول على ردّ على استدعاء الدوال
  • كيفية عرض ردّ الدالة على Gemini والردّ على المستخدم

المتطلبات

2. الإعداد والمتطلبات

قبل بدء استخدام استدعاء الدوال في Gemini، يجب تفعيل Vertex AI API وتثبيت أحدث إصدار من مكتبة عملاء Vertex AI Python.

تفعيل Vertex AI API

لتفعيل واجهة برمجة تطبيقات Vertex AI، يُرجى اتّباع الخطوات التالية:

  1. في المتصفِّح، انتقِل إلى صفحة تفاصيل خدمة Vertex AI API.
  2. انقر على الزر تفعيل لتفعيل Vertex AI API في مشروعك على Google Cloud.

تثبيت مكتبة برامج Python لتطبيق Vertex AI

لتثبيت مكتبات برامج Python على Vertex AI، اتّبِع الخطوات التالية:

  1. افتح نافذة طرفية في بيئة التطوير.
  2. تحقَّق من توفُّر بيئة تطوير Python صالحة، وراجِع هذه الإرشادات إذا لزم الأمر.
  3. شغِّل الأمر التالي لتثبيت مكتبة برامج Python لبرنامج Vertex AI:
    pip install --upgrade google-cloud-aiplatform
    
  4. إذا كنت تعمل في بيئة ورقة ملاحظات، قد تحتاج إلى إعادة تشغيل بيئة التشغيل/النواة لاستخدام الحزم المثبَّتة حديثًا.

أصبح بإمكانك الآن استخدام Vertex AI API.

3- فهم المشكلة

هل سبق لك أن تفاعلت مع نموذج لغوي كبير أو نموذج للذكاء الاصطناعي التوليدي وسألته عن معلومات في الوقت الفعلي أو حالية بهدف الحصول على ردّ يتضمّن معلومات قديمة أو معلومات غير دقيقة؟

لنجربها الآن! أولاً، سنستورد حزم Python المناسبة ونبدأ نموذج Gemini. يمكنك تشغيل الرمز البرمجي التالي في بيئة تطوير Python، مثل Colab أو Colab Enterprise من خلال تثبيت أحدث إصدار من حزمة Vertex AI SDK for Python:

import vertexai
from vertexai.generative_models import GenerativeModel
model = GenerativeModel("gemini-1.5-pro-001")

الآن، لنطرح سؤالاً حول سعر الصرف للعملات المختلفة اليوم:

response = model.generate_content(
    "What's the exchange rate for euros to dollars today?"
)
print(response.text)

من المفترض أن يُنشئ لك النموذج ردًّا محدودًا أو قديمًا مشابهًا لما يلي:

As an AI language model, I don't have access to real-time currency exchange
rates. However, as of my last update in September 2021, the approximate exchange
rate between euros (EUR) and US dollars (USD) was:

1 EUR ≈ 1.18 USD

Please note that currency exchange rates constantly fluctuate and can vary
depending on various factors such as economic conditions, supply and demand,
political events, and more. To obtain the most up-to-date and accurate exchange
rate, I recommend using a reliable currency converter or financial website that
provides live rates.

[...]

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

وفي العادة، يمكن لمسار النموذج التوليدي أن يتعامل مع بعض هذه المهام أو كلّها على المستخدِم. في القسم التالي، ستجرّب بعض الحلول الشائعة للحصول على ردود منظَّمة من النماذج التوليدية كي تتمكّن من استدعاء أنظمة خارجية.

4. تجربة الحلول الشائعة

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

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

لنعيد النظر في السؤال الذي طرحناه في القسم السابق ونضيف بعض التعليمات الإضافية إلى النموذج. يُرجى محاولة إرسال الطلب التالي إلى نموذج Gemini:

user_prompt = "What's the exchange rate from euros to US dollars today?"

response = model.generate_content("""
Your task is to extract parameters from the user's input and return it as a
structured JSON payload. The user will ask about the exchange rate and which
currency they are converting from and converting to.

User input: {user_prompt}

Please extract the currencies as parameters and put them in a JSON object.
""".format(user_prompt=user_prompt))
print(response.text)

هذه النتيجة هي الردّ النصي التالي، وهو ليس ملف JSON صالحًا وسيصعب علينا التعامل معه:

```json
{
  "currency_from": "euros",
  "currency_to": "US dollars"
}
```

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

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

ولكن هناك طريقة أكثر حتمية! لنتعلّم كيفية استخدام استدعاء الدوال في Gemini للبحث عن معلومات في الخدمات الخارجية وعرض ردود ذات صلة للمستخدمين النهائيين.

5- آلية عمل استدعاء الدوال

قبل البدء باستخراج المَعلَمات واستدعاء الدوال، سنتعرّف على خطوات استدعاء الدوال والمكوّنات المستخدَمة في وقت التشغيل.

نظرة عامة على استدعاء الدوال في Gemini

البيانات التي أدخلها المستخدم إلى Gemini API

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

واجهة Gemini API تعرض استدعاء دالة

استنادًا إلى المحتوى الذي يُدخله المستخدم ويطلبه، سيعرض Gemini ردّ استدعاء الدالة مع بيانات منظَّمة تتضمّن اسم الدالة المطلوب استدعاؤها والمعلَمات المقابلة التي يجب استخدامها.

تقديم طلب بيانات من واجهة برمجة التطبيقات

بعد ذلك، ستستخدم اسم الدالة والمعلمات لتقديم طلب من واجهة برمجة التطبيقات لاسترداد المعلومات من نظام خارجي أو واجهة برمجة تطبيقات. ينفِّذ المطوّر هذا الطلب والردّ من واجهة برمجة التطبيقات في الرمز البرمجي للتطبيق، ولا يحدث ذلك خارج نطاق واجهة برمجة التطبيقات Gemini API وحزمة تطوير البرامج (SDK). على سبيل المثال، يمكنك استخدام مكتبة requests في Python لطلب واجهة برمجة تطبيقات REST وتلقّي استجابة JSON. أو يمكنك استدعاء الدالة باستخدام أسلوبك المفضل ومكتبة العملاء.

إرجاع ردّ من واجهة برمجة التطبيقات إلى Gemini

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

6- اختيار واجهة برمجة التطبيقات

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

بالنسبة إلى تطبيق تحويل العملات، سنستخدم واجهة برمجة تطبيقات REST على الرابط https://www.frankfurter.app/ لجلب أحدث المعلومات حول أسعار الصرف العالمية.

للتفاعل مع واجهة برمجة تطبيقات REST هذه، قد نُجري طلب بيانات من واجهة برمجة تطبيقات REST باستخدام requests في Python على النحو التالي:

import requests
url = "https://api.frankfurter.app/latest"
response = requests.get(url)
response.text

أو طلب cURL مثل:

curl https://api.frankfurter.app/latest

والذي يُرجع إجابة مشابهة لـ:

{
  "amount": 1,
  "base": "EUR",
  "date": "2023-12-20",
  "rates": {
    "AUD": 1.6186, "BGN": 1.9558, "BRL": 5.3287,
    "CAD": 1.4609, "CHF": 0.946, "CNY": 7.8121,
    "CZK": 24.538, "DKK": 7.4565, "GBP": 0.86555,
    "HKD": 8.5439, "HUF": 385.23, "IDR": 16994,
    "ILS": 3.9983, "INR": 91.06, "ISK": 150.3,
    "JPY": 157.12, "KRW": 1425.62, "MXN": 18.6867,
    "MYR": 5.0977, "NOK": 11.2895, "NZD": 1.7421,
    "PHP": 60.991, "PLN": 4.3413, "RON": 4.9699,
    "SEK": 11.129, "SGD": 1.4562, "THB": 38.252,
    "TRY": 31.883, "USD": 1.0944, "ZAR": 20.111
  }
}

ما مِن قيود مفروضة على نوع واجهة برمجة التطبيقات التي تستخدمها لأنّ استدعاء الدوال في Gemini لا يتيح طلب البيانات من واجهة برمجة التطبيقات الخارجية نيابةً عنك. يمكنك استخدام "خدمة تشغيل السحابة الإلكترونية" أو "دالة Cloud" أو طلب بيانات من واجهة برمجة التطبيقات إلى خدمة Google Cloud أو أي واجهة برمجة تطبيقات خارجية لـ REST.

7. تعريف الدالة والأداة

الآن وبعد أن اخترت واجهة برمجة تطبيقات REST لاستخدامها، يمكننا الآن تحديد مواصفات واجهة برمجة التطبيقات وتسجيل الدالة في أداة.

تأكَّد من تثبيت أحدث إصدار من Vertex AI SDK for Python.

بعد ذلك، يجب استيراد الوحدات اللازمة من حزمة Python SDK وإعداد نموذج Gemini على النحو التالي:

from vertexai.generative_models import (
    Content,
    FunctionDeclaration,
    GenerativeModel,
    Part,
    Tool,
)

model = GenerativeModel("gemini-1.5-pro-001")

بالرجوع إلى واجهة برمجة تطبيقات REST على https://api.frankfurter.app/، يمكننا ملاحظة أنّها تقبل مَعلمات الإدخال التالية:

المعلمة

النوع

الوصف

from

سلسلة

العملة المطلوب التحويل منها

to

سلسلة

العملة المطلوب تحويلها إليها

date

سلسلة

تاريخ استرجاع سعر الصرف في

باستخدام هذه المعلمات، تبدو مواصفات OpenAPI الجزئية لواجهة برمجة تطبيقات REST هذه بتنسيق YAML كما يلي:

openapi: 3.0.0
info:
  title: Frankfurter Exchange Rate API
  description: This API provides current and historical exchange rates
  version: 1.0.0
servers:
  - url: https://api.frankfurter.app
paths:
  /{date}:
    get:
      summary: Get the latest currency exchange rates.
      parameters:
        - name: date
          in: path
          description: Get currency rates for a specific date or 'latest' if a date is not specified
          required: true
          schema:
            type: string
        - name: from
          in: query
          description: The currency to convert from.
          required: true
          schema:
            type: string
        - name: to
          in: query
          description: The currency to convert to.
          schema:
            type: string

لنسجّل الآن اسم "FunctionDeclaration" باستخدام حزمة Python SDK الخاصة بـ Gemini:

get_exchange_rate_func = FunctionDeclaration(
    name="get_exchange_rate",
    description="Get the exchange rate for currencies between countries",
    parameters={
    "type": "object",
    "properties": {
        "currency_date": {
            "type": "string",
            "description": "A date that must always be in YYYY-MM-DD format or the value 'latest' if a time period is not specified"
        },
        "currency_from": {
            "type": "string",
            "description": "The currency to convert from in ISO 4217 format"
        },
        "currency_to": {
            "type": "string",
            "description": "The currency to convert to in ISO 4217 format"
        }
    },
         "required": [
            "currency_from",
            "currency_date",
      ]
  },
)

احرص على استخدام أكبر قدر ممكن من التفاصيل في أوصاف الدوال والمَعلمات، لأنّ النموذج التوليدي سيستخدم هذه المعلومات لتحديد الدالة التي يجب اختيارها وكيفية ملء المَعلمات في استدعاء الدالة.

وأخيرًا، عليك تحديد Tool يتضمّن تعريف الدالة:

exchange_rate_tool = Tool(
    function_declarations=[get_exchange_rate_func],
)

هنا، أنت تستخدم تعريف دالة واحد داخل أداة، ولكن يُرجى العِلم أنّه يمكنك تسجيل إعلان دالة واحد أو أكثر في أداة، وسيختار النموذج الدالة المناسبة لاستخدامها في وقت التشغيل. لمزيد من التفاصيل حول FunctionDeclaration وTool والفئات ذات الصلة في حزمة Gemini SDK للغة Python، يمكنك مراجعة المستندات حول استدعاء الدوال في Gemini API.

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

8. إنشاء استدعاء دالة

يمكنك الآن الطلب من النموذج التوليدي وتضمين tool التي حدّدتها:

prompt = """What is the exchange rate from Australian dollars to Swedish krona?
How much is 500 Australian dollars worth in Swedish krona?"""

response = model.generate_content(
    prompt,
    tools=[exchange_rate_tool],
)

لنلقِ نظرة على كائن الاستجابة:

print(response.candidates[0].content)

role: "model"
parts {
  function_call {
    name: "get_exchange_rate"
    args {
      fields {
        key: "currency_to"
        value {
          string_value: "SEK"
        }
      }
      fields {
        key: "currency_from"
        value {
          string_value: "AUD"
        }
      }
      fields {
        key: "currency_date"
        value {
          string_value: "latest"
        }
      }
    }
  }
}

يبدو أنّ النموذج قد اختار الدالة المتاحة وظهر استدعاء دالة للدالة get_exchange_rate مع المَعلمات. وتكون المعاملات بالتنسيق الصحيح الذي أردناه. تهانينا على تلقّي ردود منظَّمة من نماذج من إنشاء الذكاء الاصطناعي التوليدي

في القسم التالي، ستستخدم المعلومات الواردة في الردّ لتقديم طلب من خلال واجهة برمجة التطبيقات.

9. تقديم طلب بيانات من واجهة برمجة التطبيقات

يُرجى العِلم أنّ استدعاء الوظيفة في Gemini لا يؤدي إلى طلب واجهة برمجة التطبيقات الخارجية نيابةً عنك. وبدلاً من ذلك، يمكنك استخدام أي لغة أو مكتبة أو إطار عمل تريده!

هنا ستستخدم مكتبة requests في Python لاستدعاء واجهة برمجة تطبيقات REST لسعر الصرف.

لنفك ضغط الرد في قاموس بايثون:

params = {}
for key, value in response.candidates[0].content.parts[0].function_call.args.items():
    params[key[9:]] = value
params

يمكننا الآن استدعاء requests أو أي طريقة أخرى:

import requests
url = f"https://api.frankfurter.app/{params['date']}"
api_response = requests.get(url, params=params)
api_response.text

ما الذي ينتج عنه إجابة مشابهة لـ:

'{"amount":1.0,"base":"AUD","date":"2024-01-16","rates":{"SEK":6.8682}}'

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

10. إنشاء ردّ

وأخيرًا، لننشئ ردًا للمستخدم من خلال إعادة استجابة الدالة إلى النموذج في المرحلة التالية من المحادثة:

response = model.generate_content(
    [
    Content(role="user", parts=[
        Part.from_text(prompt + """Give your answer in steps with lots of detail
            and context, including the exchange rate and date."""),
    ]),
    Content(role="function", parts=[
        Part.from_dict({
            "function_call": {
                "name": "get_exchange_rate",
            }
        })
    ]),
    Content(role="function", parts=[
        Part.from_function_response(
            name="get_exchange_rate",
            response={
                "content": api_response.text,
            }
        )
    ]),
    ],
    tools=[exchange_rate_tool],
)


response.candidates[0].content.parts[0].text

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

The exchange rate from Australian dollars to Swedish krona on January 16, 2024,
is 1 Australian dollar is equal to 6.8663 Swedish krona.

So, 500 Australian dollars would be worth 500 * 6.8663 = 3,433.15 Swedish krona.

11. عرض مثال الرمز الكامل

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

في ما يلي مثال الرمز البرمجي الكامل للحل النهائي:

import requests
from vertexai.generative_models import (
    Content,
    FunctionDeclaration,
    GenerativeModel,
    Part,
    Tool,
)

model = GenerativeModel("gemini-1.5-pro-001")

get_exchange_rate_func = FunctionDeclaration(
    name="get_exchange_rate",
    description="Get the exchange rate for currencies between countries",
    parameters={
    "type": "object",
    "properties": {
        "currency_date": {
            "type": "string",
            "description": "A date that must always be in YYYY-MM-DD format or the value 'latest' if a time period is not specified"
        },
        "currency_from": {
            "type": "string",
            "description": "The currency to convert from in ISO 4217 format"
        },
        "currency_to": {
            "type": "string",
            "description": "The currency to convert to in ISO 4217 format"
        }
    },
         "required": [
            "currency_from",
            "currency_date",
      ]
  },
)

exchange_rate_tool = Tool(
    function_declarations=[get_exchange_rate_func],
)

prompt = """What is the exchange rate from Australian dollars to Swedish krona?
How much is 500 Australian dollars worth in Swedish krona?"""

response = model.generate_content(
    prompt,
    tools=[exchange_rate_tool],
)

response.candidates[0].content

params = {}
for key, value in response.candidates[0].content.parts[0].function_call.args.items():
    params[key[9:]] = value
params

import requests
url = f"https://api.frankfurter.app/{params['date']}"
api_response = requests.get(url, params=params)
api_response.text

response = model.generate_content(
    [
    Content(role="user", parts=[
        Part.from_text(prompt + """Give your answer in steps with lots of detail
            and context, including the exchange rate and date."""),
    ]),
    Content(role="function", parts=[
        Part.from_dict({
            "function_call": {
                "name": "get_exchange_rate",
            }
        })
    ]),
    Content(role="function", parts=[
        Part.from_function_response(
            name="get_exchange_rate",
            response={
                "content": api_response.text,
            }
        )
    ]),
    ],
    tools=[exchange_rate_tool],
)


response.candidates[0].content.parts[0].text

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

للاطّلاع على عيّنات تعليمات برمجية إضافية، يمكنك الاطّلاع على نموذج ورقة ملاحظات لاستدعاء الدوال في Gemini.

12. تهانينا

من خلال استدعاء الدوال في Gemini، نجحت في إنشاء مسار للذكاء الاصطناعي التوليدي يستخدم واجهتَي Vertex AI Gemini وPython. يمكن للمستخدمين الاستفسار عن أسعار الصرف، وسيجلب النظام أحدث البيانات من واجهة برمجة تطبيقات خارجية ويردّ بالإجابة.

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

يهدف تصميم استدعاء الوظائف في Gemini إلى منحك أفضل ما في الأمرين لاستخراج المَعلمات بشكل حاسم، مع ترك التلخيص وإنشاء المحتوى للنموذج التوليدي. يمكنك تجربة واجهات برمجة تطبيقات وطلبات أخرى في مسار الإحالة الناجحة، واستكشاف الوظائف الأخرى المتوفّرة المتعلّقة بـ Vertex AI Gemini API.

واجهة API

تنظيف

يمكنك تنفيذ المهام التالية لتجنُّب تحمُّل أي رسوم من حسابك على Google Cloud مقابل الموارد المستخدَمة في هذا الدرس التطبيقي حول الترميز:

  • لتجنُّب تحصيل رسوم غير ضرورية من Google Cloud، استخدِم وحدة تحكُّم Google Cloud لحذف مشروعك إذا لم تكن بحاجة إليه.
  • إذا أردت إيقاف واجهات برمجة التطبيقات في Vertex AI، انتقِل إلى صفحة تفاصيل خدمة Vertex AI API وانقر على إيقاف واجهة برمجة التطبيقات وأكِّد خيارك.

مزيد من المعلومات

يمكنك مواصلة التعرّف على الذكاء الاصطناعي الحواري والذكاء الاصطناعي التوليدي من خلال الأدلة والمراجع التالية:

الترخيص

هذا العمل مرخّص بموجب رخصة المشاع الإبداعي 2.0 مع نسب العمل إلى مؤلف عام.