使用“检索”功能(数据存储区)调用 Google Vertex API 时出现 400 错误

问题描述 投票:0回答:1

每当我在 API 请求中包含检索工具时,都会收到以下错误。确认一下,在不添加检索工具的情况下,调用可以正常工作。

我正在发布到此端点:

https://us-central1-aiplatform.googleapis.com/v1/projects/%5C%5C\<project_id\>/locations/us-central1/publishers/google/models/gemini-1.0-pro-001:generateContent

这个有效负载:

{
  "contents": [{
    "role": "user",
    "parts": [{
      "text": <prompt>
    }]
  }],
  "model": "projects/<project_id>/locations/us/publishers/google/models/gemini-1.0-pro-001"
}

工作正常,但将其添加到有效负载中:

  "tools": [{
    "retrieval": {
      "vertexAiSearch": {
        "datastore": "projects/<project_id>/locations/us/collections/default_collection/dataStores/<datastore_id>"
      }
    }
  }]

导致400错误:

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT"
  }
}

其他 Stack Overflow 线程中建议的内容没有帮助:

  • 确保应用程序和存储桶位于同一位置(它们是)

  • 确保有足够的权限(并等待任何权限更改生效)(perm我已阅读我能找到的有关此问题的所有答案,但没有一个对我有帮助。

  • 确保应用程序和存储桶位于同一位置(它们是)

  • 确保有足够的权限(并等待任何权限更改生效)(权限很好)

  • 确保 Enterprise 已激活(我确保在创建数据存储时检查了它)

  • 确保创建了一个链接到云存储(存储桶)的搜索应用程序 - 我这样做了,但是搜索应用程序与代理应用程序完全分开(我不知道两者之间有什么联系),所以我当然这没有帮助,但无论如何。

只是为了确认(因为它可能对其他人有帮助),Vertex 中对象的层次结构是这样的:

  1. 端点 - URL 中的位置必须是特定位置(例如;us-central1)或“全球”,但不能是更大的区域(例如;“us”) - 我选择了“us-central1”
  2. 项目(只是其他所有内容的容器)- 项目没有位置。
  3. 应用程序(可以是代理、搜索或聊天)- 您可以选择特定区域(例如 us-central1)或更大的区域(us)。我选择了“我们”。
  4. 数据存储(有点将应用程序链接到数据 - 数据可以是网站、云存储、API 等) - 我选择“云存储”。
  5. 云存储(实际数据) - 您只能在存储桶上选择更大的区域(例如;我们) - 所以我选择“我们”。

日志显示存储桶索引得很好,我可以向模型询问我上传的一份测试文档(使用 Workbench),它工作得很好。

我尝试过设置所有不同类型的位置。没有喜悦。

我知道代理与云存储的连接很好,因为如果存在任何权限问题,它不会让您保存您的选择。

我一直坚持使用gemini-1.0-pro-001(不是gemini-1.0-pro-002),因为gemini-1.0-pro-002不是代理中的一个选项。我不想模型冲突。

我想不出还有什么要检查的。

google-cloud-storage cloud artificial-intelligence google-cloud-vertex-ai
1个回答
0
投票

为了使模型基于源数据,您需要准备数据并将其保存到 Vertex AI Search。为此,您需要在 Vertex AI Agent Builder 中创建一个数据存储

如果您从头开始,则需要准备数据以将其引入 Vertex AI Agent Builder。请参阅准备数据摄取以开始使用。根据数据的大小,摄取可能需要几分钟到几个小时。仅支持非结构化数据存储接地。

准备好要摄取的数据后,您可以创建搜索数据存储。成功创建数据存储后,创建一个搜索应用程序以链接到它并打开企业版

这里是一个关于如何将 Gemini 1.5 Flash 型号接地的示例。按照以下说明使用您自己的数据建立模型。但在继续之前,需要先满足先决条件,然后才能将模型输出接地到数据中。

© www.soinside.com 2019 - 2024. All rights reserved.