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

1. نظرة عامة

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

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

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

طريقة عمل ميزة "استدعاء الدوال"

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

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

ما ستنشئه

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

أهداف الدورة التعليمية

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

المتطلبات

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

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

تفعيل Vertex AI API

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

  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) الخاصة بـ Gemini. على سبيل المثال، يمكنك استخدام مكتبة requests في Python لطلب واجهة REST API وتلقّي استجابة JSON. أو يمكنك استدعاء الدالة باستخدام الطريقة المفضّلة لديك ومكتبة البرامج.

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

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

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

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

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

للتفاعل مع واجهة REST API هذه، يمكننا إجراء طلب بيانات من واجهة برمجة التطبيقات باستخدام 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 Run أو Cloud Function أو طلب بيانات من واجهة برمجة التطبيقات إلى إحدى خدمات Google Cloud أو أي REST API خارجي.

7. تحديد دالة وأداة

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

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

بعد ذلك، استورِد الوحدات اللازمة من حزمة تطوير البرامج (SDK) الخاصة بلغة Python وأعِد إعداد نموذج Gemini:

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

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

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

المَعلمة

النوع

الوصف

from

سلسلة

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

to

سلسلة

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

date

سلسلة

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

باستخدام هذه المَعلمات، يبدو جزء من مواصفات OpenAPI لواجهة REST API هذه بتنسيق 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 باستخدام حزمة تطوير البرامج (SDK) في Python لـ 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 for 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 API، مع أحدث معلومات حول سعر الصرف اليوم. في القسم التالي، سنعيد إرسال هذه المعلومات إلى النموذج ليتمكّن من إنشاء ردّ مناسب للمستخدم.

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 Run أو Cloud Function أو خدمة 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 API وPython بنجاح. يمكن للمستخدمين طرح أسئلة حول أسعار الصرف، وسيجلب النظام أحدث البيانات من واجهة برمجة تطبيقات خارجية ويردّ بإجابة.

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

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

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

تنظيف

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

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

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

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

الترخيص

يخضع هذا العمل لترخيص المشاع الإبداعي مع نسب العمل إلى مؤلفه 2.0 Generic License.