نحوه تعامل با APIها با استفاده از فراخوانی تابع در Gemini

۱. مرور کلی

فراخوانی تابع در جمینی چیست؟

رابط برنامه‌نویسی کاربردی Vertex AI Gemini ، خانواده‌ای از مدل‌های هوش مصنوعی مولد است که توسط Google DeepMind توسعه داده شده و برای موارد استفاده چندوجهی طراحی شده است. فراخوانی تابع یکی از ویژگی‌های مدل‌های Gemini است که دریافت خروجی‌های داده ساختاریافته از مدل‌های مولد را برای توسعه‌دهندگان آسان‌تر می‌کند.

سپس توسعه‌دهندگان می‌توانند از این خروجی‌ها برای فراخوانی سایر APIها و بازگرداندن داده‌های پاسخ مربوطه به مدل استفاده کنند. به عبارت دیگر، فراخوانی تابع به شما کمک می‌کند تا مدل‌های مولد خود را به سیستم‌های خارجی متصل کنید تا محتوای تولید شده شامل به‌روزترین و دقیق‌ترین اطلاعات باشد.

نحوه فراخوانی تابع

توابع با استفاده از اعلان‌های تابع توصیف می‌شوند، که به مدل مولد کمک می‌کند تا هدف و پارامترهای درون یک تابع را درک کند. پس از اینکه اعلان‌های تابع را در یک پرس‌وجو به یک مدل مولد ارسال کردید، مدل یک شیء ساختاریافته را برمی‌گرداند که شامل نام توابع مربوطه و آرگومان‌های آنها بر اساس پرس‌وجوی کاربر است. توجه داشته باشید که با فراخوانی تابع، مدل در واقع تابع را فراخوانی نمی‌کند. در عوض، می‌توانید از تابع و پارامترهای برگردانده شده برای فراخوانی تابع در هر زبان، کتابخانه یا چارچوبی که می‌خواهید استفاده کنید!

رابط API

آنچه خواهید ساخت

در این آزمایشگاه کد، شما یک خط لوله هوش مصنوعی مولد با API Vertex AI Gemini و پایتون خواهید ساخت. با استفاده از برنامه شما، کاربران می‌توانند در مورد نرخ ارز سوال بپرسند و سیستم آخرین داده‌ها را از یک API خارجی دریافت کرده و با پاسخ به کاربر پاسخ می‌دهد.

آنچه یاد خواهید گرفت

  • نحوه تعامل با مدل Gemini با استفاده از کتابخانه کلاینت پایتون
  • نحوه تعریف یک اعلان تابع و ثبت آن به عنوان یک ابزار
  • نحوه فراخوانی Gemini و دریافت پاسخ فراخوانی تابع
  • نحوه‌ی برگرداندن پاسخ تابع به Gemini و پاسخ به کاربر

آنچه نیاز دارید

  • یک پروژه ابری گوگل
  • یک مرورگر مثل کروم
  • یک محیط توسعه پایتون مانند Colab یا Colab Enterprise

۲. تنظیمات و الزامات

قبل از اینکه بتوانید از فراخوانی تابع در Gemini استفاده کنید، باید API Vertex AI را فعال کرده و آخرین نسخه کتابخانه کلاینت Vertex AI Python را نصب کنید.

فعال کردن API هوش مصنوعی ورتکس

برای فعال کردن Vertex AI API، مراحل زیر را دنبال کنید:

  1. در مرورگر خود، به صفحه جزئیات سرویس Vertex AI API بروید.
  2. برای فعال کردن Vertex AI API در پروژه Google Cloud خود، روی دکمه Enable کلیک کنید.

نصب کتابخانه کلاینت پایتون برای Vertex AI

برای نصب کتابخانه‌های کلاینت پایتون برای Vertex AI، مراحل زیر را دنبال کنید:

  1. یک ترمینال در محیط توسعه خود باز کنید.
  2. تأیید کنید که یک محیط توسعه پایتون معتبر دارید و در صورت نیاز به این دستورالعمل‌ها مراجعه کنید.
  3. دستور زیر را برای نصب کتابخانه کلاینت پایتون برای Vertex AI اجرا کنید:
    pip install --upgrade google-cloud-aiplatform
    
  4. اگر در محیط نوت‌بوک اجرا می‌کنید، ممکن است لازم باشد زمان اجرا/هسته خود را مجدداً راه‌اندازی کنید تا از بسته‌های تازه نصب شده استفاده کنید.

حالا آماده‌اید تا از API هوش مصنوعی ورتکس استفاده کنید!

۳. مشکل را درک کنید

آیا تا به حال با یک مدل زبانی بزرگ یا مدل هوش مصنوعی مولد تعامل داشته‌اید و از آن در مورد اطلاعات بلادرنگ یا فعلی پرسیده‌اید، و در نهایت پاسخی با اطلاعات قدیمی یا نادرست دریافت کرده‌اید؟

بیایید همین حالا امتحان کنیم! ابتدا بسته‌های پایتون مربوطه را وارد کرده و مدل Gemini را مقداردهی اولیه می‌کنیم. می‌توانید کد زیر را در یک محیط توسعه پایتون مانند Colab یا Colab Enterprise و با نصب آخرین نسخه Vertex AI SDK برای پایتون اجرا کنید:

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.

[...]

اگر کاربر نهایی این نوع پاسخ را دریافت کند، باید زمینه را تغییر دهد تا ارزهای مورد علاقه خود را جستجو کند، آخرین نرخ ارز را دریافت کند و هرگونه تبدیل را به تنهایی انجام دهد.

در حالت ایده‌آل، یک خط لوله مدل مولد می‌تواند برخی یا همه این وظایف را برای کاربر انجام دهد. در بخش بعدی، برخی از راه‌حل‌های رایج برای دریافت پاسخ‌های ساختاریافته از مدل‌های مولد را امتحان خواهید کرد تا بتوانید سیستم‌های خارجی را فراخوانی کنید.

۴. راه‌حل‌های رایج را امتحان کنید

هنگام کار با مدل‌های مولد در سناریوهایی که به اطلاعات یا داده‌های به‌روز از منابع خارجی نیاز دارید، می‌توانید یک API خارجی را فراخوانی کنید و سپس نتایج را به مدل مولد برگردانید تا در پاسخ خود از آن استفاده کند.

قبل از فراخوانی یک سیستم خارجی، باید تابع مناسب برای استفاده را تعیین کنید، پارامترهای مربوطه را از کاربر استخراج کنید و پارامترها را در یک شیء داده ساختاریافته قرار دهید. این کار معمولاً شامل مهندسی سریع و جامع برای وادار کردن مدل مولد به خروجی داده‌های ساختاریافته معتبر است.

بیایید دوباره به سوالی که در بخش قبل پرسیدیم نگاهی بیندازیم و چند دستورالعمل اضافی برای مدل اضافه کنیم. درخواست زیر را به مدل 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، اختصارات استاندارد سه حرفی ارز نیستند که یک API تبادل ارز به عنوان پارامترهای ورودی انتظار دارد.

می‌توانیم از پایتون برای پس‌پردازش این متن به JSON معتبر و یک دیکشنری استفاده کنیم، دستورالعمل‌های بیشتری به اعلان اضافه کنیم، یک یا چند نمونه از خروجی مورد نظر ارائه دهیم، مدل را تنظیم دقیق کنیم، یا مدل مولد را فراخوانی دیگری کنیم و از آن بخواهیم JSON را پاک‌سازی کند.

اما یک راه قطعی‌تر هم وجود دارد! بیایید یاد بگیریم که چگونه از فراخوانی تابع در Gemini برای جستجوی اطلاعات در سرویس‌های خارجی و بازگرداندن پاسخ‌های مرتبط به کاربران نهایی استفاده کنیم.

۵. نحوه‌ی فراخوانی تابع

قبل از اینکه استخراج پارامتر و فراخوانی تابع را شروع کنیم، بیایید مراحل فراخوانی تابع و اینکه کدام اجزا در زمان اجرا استفاده می‌شوند را بررسی کنیم.

مروری بر فراخوانی توابع در Gemini

ورودی کاربر به API Gemini

درخواست کاربر به API مربوط به Gemini ارسال می‌شود و در آن فراخوانی API به مدل Gemini، توسعه‌دهنده یک یا چند اعلان تابع را در یک ابزار تعریف کرده است تا مدل Gemini بداند کدام توابع را می‌تواند فراخوانی کند و چگونه آنها را فراخوانی کند.

API مربوط به Gemini یک فراخوانی تابع را برمی‌گرداند

بر اساس محتوای ورودی و اعلان کاربر، Gemini یک پاسخ فراخوانی تابع با داده‌های ساختاریافته برمی‌گرداند که شامل نام تابعی که باید فراخوانی شود و پارامترهای مربوطه برای استفاده است.

درخواست API ارسال کنید

سپس، از نام تابع و پارامترها برای ایجاد یک درخواست API جهت بازیابی اطلاعات از یک سیستم یا API خارجی استفاده خواهید کرد. این درخواست و پاسخ API توسط توسعه‌دهنده در کد برنامه پیاده‌سازی شده و خارج از محدوده API و SDK Gemini اتفاق می‌افتد. به عنوان مثال، ممکن است از کتابخانه requests در پایتون برای فراخوانی یک REST API و دریافت پاسخ JSON استفاده کنید. یا می‌توانید تابع را با استفاده از رویکرد و کتابخانه کلاینت مورد نظر خود فراخوانی کنید.

پاسخ API را به Gemini برگردانید

در نهایت، پاسخ API را به مدل Gemini ارسال خواهید کرد تا بتواند پاسخی به درخواست اولیه کاربر نهایی ایجاد کند یا اگر مدل Gemini تشخیص دهد که به اطلاعات اضافی نیاز دارد، پاسخ فراخوانی تابع دیگری را فراخوانی کند.

۶. API خود را انتخاب کنید

حالا که جریان کلی و مراحل خاص فراخوانی تابع را درک کردید، یک خط لوله هوش مصنوعی مولد برای دریافت آخرین نرخ‌های تبادل ارز خواهید ساخت. ابتدا، باید API مورد نظر خود را به عنوان منبع اطلاعات انتخاب کنیم.

برای برنامه‌ی صرافی خود، از REST API به آدرس https://www.frankfurter.app/ برای دریافت آخرین اطلاعات در مورد نرخ‌های جهانی ارز استفاده خواهیم کرد.

برای تعامل با این REST API، می‌توانیم یک فراخوانی REST API با requests در پایتون به صورت زیر انجام دهیم:

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 در واقع فراخوانی API خارجی را برای شما انجام نمی‌دهد، هیچ محدودیتی در مورد نوع API مورد استفاده شما وجود ندارد! می‌توانید از یک سرویس Cloud Run، یک تابع Cloud، یک درخواست API به یک سرویس Google Cloud یا هر API REST خارجی استفاده کنید.

۷. یک تابع و ابزار تعریف کنید

اکنون که یک API REST برای استفاده انتخاب کرده‌اید، می‌توانیم مشخصات API را تعریف کرده و تابع را در یک ابزار ثبت کنیم.

مطمئن شوید که آخرین نسخه Vertex AI SDK برای پایتون را نصب کرده‌اید.

سپس، ماژول‌های لازم را از SDK پایتون وارد کنید و مدل 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

حالا، بیایید این را با استفاده از SDK پایتون برای Gemini به عنوان یک FunctionDeclaration ثبت کنیم:

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 برای پایتون، به مستندات مربوط به فراخوانی تابع در API Gemini مراجعه کنید.

شما پیکربندی تعریف تابع و ابزار خود را تکمیل کرده‌اید. در بخش بعدی، مدل مولد را با این ابزار فراخوانی می‌کنیم و یک فراخوانی تابع دریافت می‌کنیم که می‌توانیم از آن برای فراخوانی REST API استفاده کنیم.

۸. ایجاد یک فراخوانی تابع

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

در بخش بعدی، از اطلاعات موجود در پاسخ برای ارسال یک درخواست API استفاده خواهید کرد.

۹. یک درخواست API ارسال کنید

به یاد داشته باشید که فراخوانی تابع در Gemini در واقع فراخوانی API خارجی را برای شما انجام نمی‌دهد. در عوض، شما آزاد هستید که از هر زبان، کتابخانه یا چارچوبی که دوست دارید استفاده کنید!

در اینجا از کتابخانه requests در پایتون برای فراخوانی REST API نرخ ارز استفاده خواهید کرد.

بیایید پاسخ را در یک دیکشنری پایتون باز کنیم:

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، با آخرین اطلاعات نرخ ارز از امروز، دریافت کرده‌ایم. در بخش بعدی، این اطلاعات را به مدل ارسال خواهیم کرد تا بتواند پاسخی مرتبط برای کاربر ایجاد کند.

۱۰. یک پاسخ ایجاد کنید

در نهایت، بیایید با ارسال پاسخ تابع به مدل در نوبت مکالمه بعدی، یک پاسخ برای کاربر ایجاد کنیم:

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

زمانی که پاسخ تابع را به مدل ارسال کنیم، مدل به درخواست کاربر به همراه اطلاعات مرتبط از پاسخ API پاسخ خواهد داد.

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.

۱۱. نمونه کد کامل را مشاهده کنید

در این مرحله، می‌توانید کد پایتون خود را با استفاده از یک سرویس Cloud Run، یک Cloud Function یا یک سرویس Cloud دیگر در یک API بک‌اند قرار دهید و یک برنامه فرانت‌اند که از این API بک‌اند برای انجام کوئری‌های مدل و فراخوانی‌های API استفاده می‌کند، پیاده‌سازی کنید.

در اینجا مثال کد کامل برای راه حل نهایی ما آمده است:

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 مراجعه کنید.

۱۲. تبریک

با استفاده از فراخوانی تابع در Gemini، شما با موفقیت یک خط لوله هوش مصنوعی مولد ساخته‌اید که با API Vertex AI Gemini و پایتون کار می‌کند! کاربران می‌توانند در مورد نرخ ارز سوال بپرسند و سیستم آخرین داده‌ها را از یک API خارجی دریافت کرده و با یک پاسخ پاسخ می‌دهد.

با دریافت یک درخواست از کاربر نهایی، فراخوانی تابع در Gemini وظیفه انتخاب تابع مناسب، استخراج پارامترها از درخواست و بازگرداندن یک شیء داده ساختاریافته برای شما جهت برقراری یک فراخوانی API خارجی را بر عهده دارد.

طراحی فراخوانی تابع در Gemini به گونه‌ای است که بهترین‌های هر دو جهان را برای استخراج قطعی پارامترها در اختیار شما قرار دهد، در حالی که خلاصه‌سازی و ایجاد محتوا را به مدل مولد واگذار می‌کند. در صورت تمایل می‌توانید APIها و دستورالعمل‌های دیگر را در خط تولید خود امتحان کنید و سایر قابلیت‌های موجود مربوط به Vertex AI Gemini API را بررسی کنید.

رابط API

تمیز کردن

برای جلوگیری از تحمیل هزینه به حساب Google Cloud خود برای منابع مورد استفاده در این codelab، می‌توانید مراحل پاکسازی زیر را انجام دهید:

  • برای جلوگیری از هزینه‌های غیرضروری گوگل کلود، در صورت عدم نیاز به پروژه، از کنسول گوگل کلود برای حذف آن استفاده کنید.
  • اگر می‌خواهید APIهای Vertex AI را غیرفعال کنید، به صفحه جزئیات سرویس API Vertex AI بروید و روی غیرفعال کردن API کلیک کنید و تأیید کنید.

اطلاعات بیشتر

با استفاده از این راهنماها و منابع، به یادگیری در مورد هوش مصنوعی محاوره‌ای و هوش مصنوعی مولد ادامه دهید:

مجوز

این اثر تحت مجوز عمومی Creative Commons Attribution 2.0 منتشر شده است.