Плагин Vertex AI предоставляет интерфейсы к нескольким генеративным моделям искусственного интеллекта Google через API Vertex AI .
Требования
Если вы хотите локально запускать потоки, использующие этот плагин, вам необходимо установить инструмент Google Cloud CLI .
Конфигурация
Чтобы использовать этот плагин, импортируйте пакет vertexai
и вызовите vertexai.Init()
:
import "github.com/firebase/genkit/go/plugins/vertexai"
if err := vertexai.Init(ctx, nil); err != nil {
return err
}
Плагин требует, чтобы вы указали идентификатор своего проекта Google Cloud, регион , к которому вы хотите отправлять запросы Vertex API, и учетные данные вашего проекта Google Cloud.
По умолчанию
vertexai.Init()
получает идентификатор вашего проекта Google Cloud из переменной средыGCLOUD_PROJECT
.Вы также можете передать это значение напрямую:
if err := vertexai.Init(ctx, &vertexai.Config{ProjectID: yourProjectID}); err != nil { return err }
По умолчанию
vertexai.Init()
получает местоположение Vertex AI API из переменной средыGCLOUD_LOCATION
.Вы также можете передать это значение напрямую:
if err := vertexai.Init(ctx, &vertexai.Config{Location: "asia-south1"}); err != nil { return err }
Чтобы предоставить учетные данные API, вам необходимо настроить учетные данные Google Cloud Application по умолчанию.
Чтобы указать свои учетные данные:
Если вы запускаете поток из среды Google Cloud (Cloud Functions, Cloud Run и т. д.), это устанавливается автоматически.
В вашей локальной среде разработки сделайте это, запустив:
gcloud auth application-default login
- Информацию о других средах см. в документации по учетным данным приложения по умолчанию .
Кроме того, убедитесь, что учетной записи предоставлена роль IAM пользователя Vertex AI (
roles/aiplatform.user
). См. документацию по контролю доступа Vertex AI.
Использование
Генеративные модели
Чтобы получить ссылку на поддерживаемую модель, укажите ее идентификатор:
langModel := vertexai.Model("gemini-1.5-flash")
Поддерживаются следующие модели: gemini-1.0-pro
, gemini-1.5-pro
и gemini-1.5-flash
.
Ссылки на модели имеют метод Generate()
, который вызывает API Vertex AI:
genRes, err := ai.GenerateText(ctx, langModel, ai.WithTextPrompt("Tell me a joke."))
if err != nil {
return err
}
Дополнительную информацию см. в разделе Создание контента .
Встраивание моделей
Чтобы получить ссылку на поддерживаемую модель внедрения, укажите ее идентификатор:
embeddingModel := vertexai.Embedder("text-embedding-004")
Поддерживаются следующие модели: textembedding-gecko@003
, textembedding-gecko@002
, textembedding-gecko@001
, text-embedding-004
, textembedding-gecko-multilingual@001
, text-multilingual-embedding-002
и multimodalembedding
.
Ссылки на Embedder имеют метод Embed()
, который вызывает API Vertex AI:
embedRes, err := ai.Embed(ctx, embeddingModel, ai.WithEmbedText(userInput))
if err != nil {
return err
}
Вы также можете передать Embedder методу Index()
индексатора и методу Retrieve()
ретривера:
if err := ai.Index(ctx, myIndexer, ai.WithIndexerDocs(docsToIndex...)); err != nil {
return err
}
retrieveRes, err := ai.Retrieve(ctx, myRetriever, ai.WithRetrieverText(userInput))
if err != nil {
return err
}
Дополнительную информацию см. в разделе Генерация с расширенным поиском (RAG) .