Вызов функций упрощает получение структурированных выходных данных из генеративных моделей. Затем вы можете использовать эти выходные данные для вызова других API и возврата соответствующих данных ответа в модель. Другими словами, вызов функций помогает подключить генеративные модели к внешним системам, чтобы сгенерированный контент содержал самую актуальную и точную информацию.
Вы можете предоставить модели Gemini описания функций. Это функции, которые вы пишете на языке вашего приложения (то есть они не являются Cloud Functions ). Модель может попросить вас вызвать функцию и отправить результат обратно, чтобы помочь модели обработать ваш запрос.
Подробнее о вызове функций можно узнать в документации Google Cloud .
При желании поэкспериментируйте с альтернативной версией Gemini API «Google AI».
Получите бесплатный доступ (в пределах ограничений и там, где это возможно) с помощью Google AI Studio и клиентских SDK Google AI . Эти SDK следует использовать для прототипирования только в мобильных и веб-приложениях.После того, как вы ознакомитесь с тем, как работает Gemini API , перейдите на Vertex AI in Firebase SDK , который имеет множество дополнительных функций, важных для мобильных и веб-приложений, таких как защита API от злоупотреблений с помощью Firebase App Check и поддержка больших медиафайлов в запросы .
При необходимости вызовите серверный Vertex AI Gemini API (например, с помощью Python, Node.js или Go).
Используйте серверные Vertex AI SDK , Firebase Genkit или Firebase Extensions для Gemini API .
Прежде чем начать
Если вы еще этого не сделали, прочтите руководство по началу работы с Vertex AI in Firebase SDK . Убедитесь, что вы выполнили все следующее:
Настройте новый или существующий проект Firebase, включая использование тарифного плана Blaze и включение необходимых API.
Подключите свое приложение к Firebase, включая регистрацию вашего приложения и добавление конфигурации Firebase в ваше приложение.
Добавьте SDK и инициализируйте службу Vertex AI и генеративную модель в своем приложении.
После того как вы подключили свое приложение к Firebase, добавили SDK и инициализировали службу Vertex AI и генеративную модель, вы готовы вызвать Gemini API .
Настройка вызова функции
В этом руководстве модель будет взаимодействовать с гипотетическим API обмена валюты, который поддерживает следующие параметры:
Параметр | Тип | Необходимый | Описание |
---|---|---|---|
currencyFrom | нить | да | Валюта для конвертации |
currencyTo | нить | да | Валюта для конвертации в |
Пример запроса API
{
"currencyFrom": "USD",
"currencyTo": "SEK"
}
Пример ответа API
{
"base": "USD",
"rates": {"SEK": 10.99}
}
Шаг 1. Создайте функцию, которая выполняет запрос API.
Если вы еще этого не сделали, начните с создания функции, которая отправляет запрос к API.
В демонстрационных целях в этом руководстве вместо отправки фактического запроса API вы будете возвращать жестко закодированные значения в том же формате, который возвращал бы реальный API.
func makeAPIRequest(currencyFrom: String,
currencyTo: String) -> JSONObject {
// This hypothetical API returns a JSON such as:
// {"base":"USD","rates":{"SEK": 10.99}}
return [
"base": .string(currencyFrom),
"rates": .object([currencyTo: .number(10.99)]),
]
}
Шаг 2. Создайте объявление функции.
Создайте объявление функции, которое вы передадите в генеративную модель (следующий шаг этого руководства).
Включите как можно больше подробностей в описания функций и параметров. Генеративная модель использует эту информацию, чтобы определить, какую функцию выбрать и как предоставить значения параметров при вызове функции.
let getExchangeRate = FunctionDeclaration(
name: "getExchangeRate",
description: "Get the exchange rate for currencies between countries",
parameters: [
"currencyFrom": Schema(
type: .string,
description: "The currency to convert from."
),
"currencyTo": Schema(
type: .string,
description: "The currency to convert to."
),
],
requiredParameters: ["currencyFrom", "currencyTo"]
)
Шаг 3. Укажите объявление функции во время инициализации модели.
Укажите объявление функции при инициализации генеративной модели, установив параметр tools
модели:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model
// Use a model that supports function calling, like a Gemini 1.5 model
let model = vertex.generativeModel(
modelName: "gemini-1.5-flash",
// Specify the function declaration.
tools: [Tool(functionDeclarations: [getExchangeRate])]
)
Узнайте, как выбрать модель Gemini и, при необходимости, местоположение , подходящее для вашего варианта использования и приложения.
Шаг 4. Создайте вызов функции.
Теперь вы можете запросить модель с определенной функцией.
Рекомендуемый способ использования вызова функций — через интерфейс чата, поскольку вызовы функций хорошо вписываются в многоходовую структуру чата.
let chat = model.startChat()
let prompt = "How much is 50 US dollars worth in Swedish krona?"
// Send the message to the generative model
let response1 = try await chat.sendMessage(prompt)
// Check if the model responded with a function call
guard let functionCall = response1.functionCalls.first else {
fatalError("Model did not respond with a function call.")
}
// Print an error if the returned function was not declared
guard functionCall.name == "getExchangeRate" else {
fatalError("Unexpected function called: \(functionCall.name)")
}
// Verify that the names and types of the parameters match the declaration
guard case let .string(currencyFrom) = functionCall.args["currencyFrom"] else {
fatalError("Missing argument: currencyFrom")
}
guard case let .string(currencyTo) = functionCall.args["currencyTo"] else {
fatalError("Missing argument: currencyTo")
}
// Call the hypothetical API
let apiResponse = makeAPIRequest(currencyFrom: currencyFrom, currencyTo: currencyTo)
// Send the API response back to the model so it can generate a text response that can be
// displayed to the user.
let response = try await chat.sendMessage([ModelContent(
role: "function",
parts: [.functionResponse(FunctionResponse(
name: functionCall.name,
response: apiResponse
))]
)])
// Log the text response.
guard let modelResponse = response.text else {
fatalError("Model did not respond with text.")
}
print(modelResponse)
Что еще вы можете сделать?
Попробуйте другие возможности Gemini API
- Стройте многоходовые разговоры (чат) .
- Генерация текста из текстовых подсказок .
- Генерируйте текст из мультимодальных подсказок (включая текст, изображения, PDF-файлы, видео и аудио).
Узнайте, как контролировать создание контента
- Понимание структуры подсказок , включая лучшие практики, стратегии и примеры подсказок.
- Настройте параметры модели, такие как температура и токены максимальной мощности.
- Используйте настройки безопасности , чтобы настроить вероятность получения ответов, которые могут быть расценены как вредные.
Узнайте больше о моделях Gemini
Узнайте о моделях, доступных для различных вариантов использования , а также об их квотах и ценах .Оставьте отзыв о своем опыте использования Vertex AI in Firebase
Вызов функций упрощает получение структурированных выходных данных из генеративных моделей. Затем вы можете использовать эти выходные данные для вызова других API и возврата соответствующих данных ответа в модель. Другими словами, вызов функций помогает подключить генеративные модели к внешним системам, чтобы сгенерированный контент содержал самую актуальную и точную информацию.
Вы можете предоставить модели Gemini описания функций. Это функции, которые вы пишете на языке вашего приложения (то есть они не являются Cloud Functions ). Модель может попросить вас вызвать функцию и отправить результат обратно, чтобы помочь модели обработать ваш запрос.
Подробнее о вызове функций можно узнать в документации Google Cloud .
При желании поэкспериментируйте с альтернативной версией Gemini API «Google AI».
Получите бесплатный доступ (в пределах ограничений и там, где это возможно) с помощью Google AI Studio и клиентских SDK Google AI . Эти SDK следует использовать для прототипирования только в мобильных и веб-приложениях.После того, как вы ознакомитесь с тем, как работает Gemini API , перейдите на Vertex AI in Firebase SDK , который имеет множество дополнительных функций, важных для мобильных и веб-приложений, таких как защита API от злоупотреблений с помощью Firebase App Check и поддержка больших медиафайлов в запросы .
При необходимости вызовите серверный Vertex AI Gemini API (например, с помощью Python, Node.js или Go).
Используйте серверные Vertex AI SDK , Firebase Genkit или Firebase Extensions для Gemini API .
Прежде чем начать
Если вы еще этого не сделали, прочтите руководство по началу работы с Vertex AI in Firebase SDK . Убедитесь, что вы выполнили все следующее:
Настройте новый или существующий проект Firebase, включая использование тарифного плана Blaze и включение необходимых API.
Подключите свое приложение к Firebase, включая регистрацию вашего приложения и добавление конфигурации Firebase в ваше приложение.
Добавьте SDK и инициализируйте службу Vertex AI и генеративную модель в своем приложении.
После того как вы подключили свое приложение к Firebase, добавили SDK и инициализировали службу Vertex AI и генеративную модель, вы готовы вызвать Gemini API .
Настройка вызова функции
В этом руководстве модель будет взаимодействовать с гипотетическим API обмена валюты, который поддерживает следующие параметры:
Параметр | Тип | Необходимый | Описание |
---|---|---|---|
currencyFrom | нить | да | Валюта для конвертации |
currencyTo | нить | да | Валюта для конвертации в |
Пример запроса API
{
"currencyFrom": "USD",
"currencyTo": "SEK"
}
Пример ответа API
{
"base": "USD",
"rates": {"SEK": 10.99}
}
Шаг 1. Создайте функцию, которая выполняет запрос API.
Если вы еще этого не сделали, начните с создания функции, которая отправляет запрос к API.
В демонстрационных целях в этом руководстве вместо отправки фактического запроса API вы будете возвращать жестко закодированные значения в том же формате, который возвращал бы реальный API.
func makeAPIRequest(currencyFrom: String,
currencyTo: String) -> JSONObject {
// This hypothetical API returns a JSON such as:
// {"base":"USD","rates":{"SEK": 10.99}}
return [
"base": .string(currencyFrom),
"rates": .object([currencyTo: .number(10.99)]),
]
}
Шаг 2. Создайте объявление функции.
Создайте объявление функции, которое вы передадите в генеративную модель (следующий шаг этого руководства).
Включите как можно больше подробностей в описания функций и параметров. Генеративная модель использует эту информацию, чтобы определить, какую функцию выбрать и как предоставить значения параметров при вызове функции.
let getExchangeRate = FunctionDeclaration(
name: "getExchangeRate",
description: "Get the exchange rate for currencies between countries",
parameters: [
"currencyFrom": Schema(
type: .string,
description: "The currency to convert from."
),
"currencyTo": Schema(
type: .string,
description: "The currency to convert to."
),
],
requiredParameters: ["currencyFrom", "currencyTo"]
)
Шаг 3. Укажите объявление функции во время инициализации модели.
Укажите объявление функции при инициализации генеративной модели, установив параметр tools
модели:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model
// Use a model that supports function calling, like a Gemini 1.5 model
let model = vertex.generativeModel(
modelName: "gemini-1.5-flash",
// Specify the function declaration.
tools: [Tool(functionDeclarations: [getExchangeRate])]
)
Узнайте, как выбрать модель Gemini и, при необходимости, местоположение , подходящее для вашего варианта использования и приложения.
Шаг 4. Создайте вызов функции.
Теперь вы можете запросить модель с определенной функцией.
Рекомендуемый способ использования вызова функций — через интерфейс чата, поскольку вызовы функций хорошо вписываются в многоходовую структуру чата.
let chat = model.startChat()
let prompt = "How much is 50 US dollars worth in Swedish krona?"
// Send the message to the generative model
let response1 = try await chat.sendMessage(prompt)
// Check if the model responded with a function call
guard let functionCall = response1.functionCalls.first else {
fatalError("Model did not respond with a function call.")
}
// Print an error if the returned function was not declared
guard functionCall.name == "getExchangeRate" else {
fatalError("Unexpected function called: \(functionCall.name)")
}
// Verify that the names and types of the parameters match the declaration
guard case let .string(currencyFrom) = functionCall.args["currencyFrom"] else {
fatalError("Missing argument: currencyFrom")
}
guard case let .string(currencyTo) = functionCall.args["currencyTo"] else {
fatalError("Missing argument: currencyTo")
}
// Call the hypothetical API
let apiResponse = makeAPIRequest(currencyFrom: currencyFrom, currencyTo: currencyTo)
// Send the API response back to the model so it can generate a text response that can be
// displayed to the user.
let response = try await chat.sendMessage([ModelContent(
role: "function",
parts: [.functionResponse(FunctionResponse(
name: functionCall.name,
response: apiResponse
))]
)])
// Log the text response.
guard let modelResponse = response.text else {
fatalError("Model did not respond with text.")
}
print(modelResponse)
Что еще вы можете сделать?
Попробуйте другие возможности Gemini API
- Стройте многоходовые разговоры (чат) .
- Генерация текста из текстовых подсказок .
- Генерируйте текст из мультимодальных подсказок (включая текст, изображения, PDF-файлы, видео и аудио).
Узнайте, как контролировать создание контента
- Понимание структуры подсказок , включая лучшие практики, стратегии и примеры подсказок.
- Настройте параметры модели, такие как температура и токены максимальной мощности.
- Используйте настройки безопасности , чтобы настроить вероятность получения ответов, которые могут быть расценены как вредные.
Узнайте больше о моделях Gemini
Узнайте о моделях, доступных для различных вариантов использования , а также об их квотах и ценах .Оставьте отзыв о своем опыте использования Vertex AI in Firebase
Вызов функций упрощает получение структурированных выходных данных из генеративных моделей. Затем вы можете использовать эти выходные данные для вызова других API и возврата соответствующих данных ответа в модель. Другими словами, вызов функций помогает подключить генеративные модели к внешним системам, чтобы сгенерированный контент содержал самую актуальную и точную информацию.
Вы можете предоставить модели Gemini описания функций. Это функции, которые вы пишете на языке вашего приложения (то есть они не являются Cloud Functions ). Модель может попросить вас вызвать функцию и отправить результат обратно, чтобы помочь модели обработать ваш запрос.
Подробнее о вызове функций можно узнать в документации Google Cloud .
При желании поэкспериментируйте с альтернативной версией Gemini API «Google AI».
Получите бесплатный доступ (в пределах ограничений и там, где это возможно) с помощью Google AI Studio и клиентских SDK Google AI . Эти SDK следует использовать для прототипирования только в мобильных и веб-приложениях.После того, как вы ознакомитесь с тем, как работает Gemini API , перейдите на Vertex AI in Firebase SDK , который имеет множество дополнительных функций, важных для мобильных и веб-приложений, таких как защита API от злоупотреблений с помощью Firebase App Check и поддержка больших медиафайлов в запросы .
При необходимости вызовите серверный Vertex AI Gemini API (например, с помощью Python, Node.js или Go).
Используйте серверные Vertex AI SDK , Firebase Genkit или Firebase Extensions для Gemini API .
Прежде чем начать
Если вы еще этого не сделали, прочтите руководство по началу работы с Vertex AI in Firebase SDK . Убедитесь, что вы выполнили все следующее:
Настройте новый или существующий проект Firebase, включая использование тарифного плана Blaze и включение необходимых API.
Подключите свое приложение к Firebase, включая регистрацию вашего приложения и добавление конфигурации Firebase в ваше приложение.
Добавьте SDK и инициализируйте службу Vertex AI и генеративную модель в своем приложении.
После того как вы подключили свое приложение к Firebase, добавили SDK и инициализировали службу Vertex AI и генеративную модель, вы готовы вызвать Gemini API .
Настройка вызова функции
В этом руководстве модель будет взаимодействовать с гипотетическим API обмена валюты, который поддерживает следующие параметры:
Параметр | Тип | Необходимый | Описание |
---|---|---|---|
currencyFrom | нить | да | Валюта для конвертации |
currencyTo | нить | да | Валюта для конвертации в |
Пример запроса API
{
"currencyFrom": "USD",
"currencyTo": "SEK"
}
Пример ответа API
{
"base": "USD",
"rates": {"SEK": 10.99}
}
Шаг 1. Создайте функцию, которая выполняет запрос API.
Если вы еще этого не сделали, начните с создания функции, которая отправляет запрос к API.
В демонстрационных целях в этом руководстве вместо отправки фактического запроса API вы будете возвращать жестко закодированные значения в том же формате, который возвращал бы реальный API.
func makeAPIRequest(currencyFrom: String,
currencyTo: String) -> JSONObject {
// This hypothetical API returns a JSON such as:
// {"base":"USD","rates":{"SEK": 10.99}}
return [
"base": .string(currencyFrom),
"rates": .object([currencyTo: .number(10.99)]),
]
}
Шаг 2. Создайте объявление функции.
Создайте объявление функции, которое вы передадите в генеративную модель (следующий шаг этого руководства).
Включите как можно больше подробностей в описания функций и параметров. Генеративная модель использует эту информацию, чтобы определить, какую функцию выбрать и как предоставить значения параметров при вызове функции.
let getExchangeRate = FunctionDeclaration(
name: "getExchangeRate",
description: "Get the exchange rate for currencies between countries",
parameters: [
"currencyFrom": Schema(
type: .string,
description: "The currency to convert from."
),
"currencyTo": Schema(
type: .string,
description: "The currency to convert to."
),
],
requiredParameters: ["currencyFrom", "currencyTo"]
)
Шаг 3. Укажите объявление функции во время инициализации модели.
Укажите объявление функции при инициализации генеративной модели, установив параметр tools
модели:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model
// Use a model that supports function calling, like a Gemini 1.5 model
let model = vertex.generativeModel(
modelName: "gemini-1.5-flash",
// Specify the function declaration.
tools: [Tool(functionDeclarations: [getExchangeRate])]
)
Узнайте, как выбрать модель Gemini и, при необходимости, местоположение , подходящее для вашего варианта использования и приложения.
Шаг 4. Создайте вызов функции.
Теперь вы можете запросить модель с определенной функцией.
Рекомендуемый способ использования вызова функций — через интерфейс чата, поскольку вызовы функций хорошо вписываются в многоходовую структуру чата.
let chat = model.startChat()
let prompt = "How much is 50 US dollars worth in Swedish krona?"
// Send the message to the generative model
let response1 = try await chat.sendMessage(prompt)
// Check if the model responded with a function call
guard let functionCall = response1.functionCalls.first else {
fatalError("Model did not respond with a function call.")
}
// Print an error if the returned function was not declared
guard functionCall.name == "getExchangeRate" else {
fatalError("Unexpected function called: \(functionCall.name)")
}
// Verify that the names and types of the parameters match the declaration
guard case let .string(currencyFrom) = functionCall.args["currencyFrom"] else {
fatalError("Missing argument: currencyFrom")
}
guard case let .string(currencyTo) = functionCall.args["currencyTo"] else {
fatalError("Missing argument: currencyTo")
}
// Call the hypothetical API
let apiResponse = makeAPIRequest(currencyFrom: currencyFrom, currencyTo: currencyTo)
// Send the API response back to the model so it can generate a text response that can be
// displayed to the user.
let response = try await chat.sendMessage([ModelContent(
role: "function",
parts: [.functionResponse(FunctionResponse(
name: functionCall.name,
response: apiResponse
))]
)])
// Log the text response.
guard let modelResponse = response.text else {
fatalError("Model did not respond with text.")
}
print(modelResponse)
Что еще вы можете сделать?
Попробуйте другие возможности Gemini API
- Стройте многоходовые разговоры (чат) .
- Генерация текста из текстовых подсказок .
- Генерируйте текст из мультимодальных подсказок (включая текст, изображения, PDF-файлы, видео и аудио).
Узнайте, как контролировать создание контента
- Понимание структуры подсказок , включая лучшие практики, стратегии и примеры подсказок.
- Настройте параметры модели, такие как температура и токены максимальной мощности.
- Используйте настройки безопасности , чтобы настроить вероятность получения ответов, которые могут быть расценены как вредные.
Узнайте больше о моделях Gemini
Узнайте о моделях, доступных для различных вариантов использования , а также об их квотах и ценах .Оставьте отзыв о своем опыте использования Vertex AI in Firebase
Вызов функций упрощает получение структурированных выходных данных из генеративных моделей. Затем вы можете использовать эти выходные данные для вызова других API и возврата соответствующих данных ответа в модель. Другими словами, вызов функций помогает подключить генеративные модели к внешним системам, чтобы сгенерированный контент содержал самую актуальную и точную информацию.
Вы можете предоставить модели Gemini описания функций. Это функции, которые вы пишете на языке вашего приложения (то есть они не являются Cloud Functions ). Модель может попросить вас вызвать функцию и отправить результат обратно, чтобы помочь модели обработать ваш запрос.
Подробнее о вызове функций можно узнать в документации Google Cloud .
При желании поэкспериментируйте с альтернативной версией Gemini API «Google AI».
Получите бесплатный доступ (в пределах ограничений и там, где это возможно) с помощью Google AI Studio и клиентских SDK Google AI . Эти SDK следует использовать для прототипирования только в мобильных и веб-приложениях.После того, как вы ознакомитесь с тем, как работает Gemini API , перейдите на Vertex AI in Firebase SDK , который имеет множество дополнительных функций, важных для мобильных и веб-приложений, таких как защита API от злоупотреблений с помощью Firebase App Check и поддержка больших медиафайлов в запросы .
При необходимости вызовите серверный Vertex AI Gemini API (например, с помощью Python, Node.js или Go).
Используйте серверные Vertex AI SDK , Firebase Genkit или Firebase Extensions для Gemini API .
Прежде чем начать
Если вы еще этого не сделали, прочтите руководство по началу работы с Vertex AI in Firebase SDK . Убедитесь, что вы выполнили все следующее:
Настройте новый или существующий проект Firebase, включая использование тарифного плана Blaze и включение необходимых API.
Подключите свое приложение к Firebase, включая регистрацию вашего приложения и добавление конфигурации Firebase в ваше приложение.
Добавьте SDK и инициализируйте службу Vertex AI и генеративную модель в своем приложении.
После того как вы подключили свое приложение к Firebase, добавили SDK и инициализировали службу Vertex AI и генеративную модель, вы готовы вызвать Gemini API .
Настройка вызова функции
В этом руководстве модель будет взаимодействовать с гипотетическим API обмена валюты, который поддерживает следующие параметры:
Параметр | Тип | Необходимый | Описание |
---|---|---|---|
currencyFrom | нить | да | Валюта для конвертации |
currencyTo | нить | да | Валюта для конвертации в |
Пример запроса API
{
"currencyFrom": "USD",
"currencyTo": "SEK"
}
Пример ответа API
{
"base": "USD",
"rates": {"SEK": 10.99}
}
Шаг 1. Создайте функцию, которая выполняет запрос API.
Если вы еще этого не сделали, начните с создания функции, которая отправляет запрос к API.
В демонстрационных целях в этом руководстве вместо отправки фактического запроса API вы будете возвращать жестко закодированные значения в том же формате, который возвращал бы реальный API.
func makeAPIRequest(currencyFrom: String,
currencyTo: String) -> JSONObject {
// This hypothetical API returns a JSON such as:
// {"base":"USD","rates":{"SEK": 10.99}}
return [
"base": .string(currencyFrom),
"rates": .object([currencyTo: .number(10.99)]),
]
}
Шаг 2. Создайте объявление функции.
Создайте объявление функции, которое вы передадите в генеративную модель (следующий шаг этого руководства).
Включите как можно больше подробностей в описания функций и параметров. Генеративная модель использует эту информацию, чтобы определить, какую функцию выбрать и как предоставить значения параметров при вызове функции.
let getExchangeRate = FunctionDeclaration(
name: "getExchangeRate",
description: "Get the exchange rate for currencies between countries",
parameters: [
"currencyFrom": Schema(
type: .string,
description: "The currency to convert from."
),
"currencyTo": Schema(
type: .string,
description: "The currency to convert to."
),
],
requiredParameters: ["currencyFrom", "currencyTo"]
)
Шаг 3. Укажите объявление функции во время инициализации модели.
Укажите объявление функции при инициализации генеративной модели, установив параметр tools
модели:
import FirebaseVertexAI
// Initialize the Vertex AI service
let vertex = VertexAI.vertexAI()
// Initialize the generative model
// Use a model that supports function calling, like a Gemini 1.5 model
let model = vertex.generativeModel(
modelName: "gemini-1.5-flash",
// Specify the function declaration.
tools: [Tool(functionDeclarations: [getExchangeRate])]
)
Узнайте, как выбрать модель Gemini и, при необходимости, местоположение , подходящее для вашего варианта использования и приложения.
Шаг 4. Создайте вызов функции.
Теперь вы можете запросить модель с определенной функцией.
Рекомендуемый способ использования вызова функций — через интерфейс чата, поскольку вызовы функций хорошо вписываются в многоходовую структуру чата.
let chat = model.startChat()
let prompt = "How much is 50 US dollars worth in Swedish krona?"
// Send the message to the generative model
let response1 = try await chat.sendMessage(prompt)
// Check if the model responded with a function call
guard let functionCall = response1.functionCalls.first else {
fatalError("Model did not respond with a function call.")
}
// Print an error if the returned function was not declared
guard functionCall.name == "getExchangeRate" else {
fatalError("Unexpected function called: \(functionCall.name)")
}
// Verify that the names and types of the parameters match the declaration
guard case let .string(currencyFrom) = functionCall.args["currencyFrom"] else {
fatalError("Missing argument: currencyFrom")
}
guard case let .string(currencyTo) = functionCall.args["currencyTo"] else {
fatalError("Missing argument: currencyTo")
}
// Call the hypothetical API
let apiResponse = makeAPIRequest(currencyFrom: currencyFrom, currencyTo: currencyTo)
// Send the API response back to the model so it can generate a text response that can be
// displayed to the user.
let response = try await chat.sendMessage([ModelContent(
role: "function",
parts: [.functionResponse(FunctionResponse(
name: functionCall.name,
response: apiResponse
))]
)])
// Log the text response.
guard let modelResponse = response.text else {
fatalError("Model did not respond with text.")
}
print(modelResponse)
Что еще вы можете сделать?
Попробуйте другие возможности Gemini API
- Стройте многоходовые разговоры (чат) .
- Генерация текста из текстовых подсказок .
- Генерируйте текст из мультимодальных подсказок (включая текст, изображения, PDF-файлы, видео и аудио).
Узнайте, как контролировать создание контента
- Понимание структуры подсказок , включая лучшие практики, стратегии и примеры подсказок.
- Настройте параметры модели, такие как температура и токены максимальной мощности.
- Используйте настройки безопасности , чтобы настроить вероятность получения ответов, которые могут быть расценены как вредные.
Узнайте больше о моделях Gemini
Узнайте о моделях, доступных для различных вариантов использования , а также об их квотах и ценах .Оставьте отзыв о своем опыте использования Vertex AI in Firebase