Как исправить ошибки 401 при использовании эмбеддингов Gemini

Добрый день,

Надеюсь, у вас всё отлично!

Я использую плагин AI и в настоящее время применяю модель Gemini как для генеративного языка, так и для эмбеддингов. Однако, похоже, что после некоторых изменений на стороне Google возникли ошибки при попытке форума Discourse обратиться к API Gemini — у меня не получается настроить эмбеддинги через Gemini.

Настройки эмбеддингов

Ранее я использовал следующий URL в конфигурации модели для эмбеддингов через Gemini (но получал ошибки):
https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-001:embedContent

Изучив документацию в интернете, я обнаружил, что URL должен соответствовать следующему шаблону:
https://{zone}-aiplatform.googleapis.com/v1/projects/{google cloud project reference}/locations/{zone}/publishers/google/models/gemini-embedding-001:embedContent

Как проявляется проблема у меня

  1. Я получаю следующие ошибки:
    Trying to contact the model returned this error: { "error": { "code": 401, "message": "API keys are not supported by this API. Expected OAuth2 access token or other authentication credentials that assert a principal. See https://cloud.google.com/docs/authentication", "status": "UNAUTHENTICATED", "details": \[ { "@type": "type.googleapis.com/google.rpc.ErrorInfo", "reason": "CREDENTIALS_MISSING", "domain": "googleapis.com", "metadata": { "method": "google.cloud.aiplatform.v1.PredictionService.EmbedContent", "service": "aiplatform.googleapis.com" } } \] } }
  2. Новые темы, как я предполагаю, не имеют эмбеддингов, поэтому вместо AI-секции «Связанные темы» после сообщения отображается раздел « Новые и непрочитанные темы» — это касается только новых тем, так как я получаю ошибки.

Это намекает на то, что, возможно, нужно передавать больше, чем просто ключ API? Я немного растерян.

Дополнительная информация

  • У меня есть рабочий проект в Google Cloud, так как API, который я использую для генеративного контента (суммаризация тем, чат-бот и т.д.), работает на моем форуме безупречно — проблема возникает только с эмбеддингами.
  • Я использую тот же API для генеративного контента и эмбеддингов — после некоторых изменений на стороне Google, похоже, что единственным доступным API для всех моделей стало «Gemini API».
  • Возможно, я нашел статью, которая говорит об этом (не уверен, что это на 100% связано): Gemini CLI Vertex AI Authentication Bug - CREDENTIALS_MISSING Despite Valid Service Account · Issue #15823 · google-gemini/gemini-cli · GitHub

Мои вопросы

  1. Что я упускаю?
  2. У кого-нибудь работает AI с моделями Gemini, и приходилось ли вам изменять конфигурацию, используя сервисные аккаунты?
  3. Какой правильный URL сервиса эмбеддингов нужно использовать для моделей эмбеддингов Gemini?

Большое спасибо за вашу ценную помощь и советы.
С наилучшими пожеланиями.

Это разница между Google AI Studio и Gemini Enterprise Agent Platform (ранее Vertex AI).

Для эмбеддингов мы совместимы только с первым вариантом.

Недавно мы получили PR, который делает наш LLM-инференс совместимым со вторым вариантом, так как для LLM мы также поддерживали только первый.

Большое спасибо за информацию, всё понятно. Я перешёл на API AI Studio для эмбеддингов, и действительно, теперь всё работает. Вернусь к Enterprise Agent Platform, когда LLM-инференс станет совместим.

С уважением.