每当我在 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 中对象的层次结构是这样的:
日志显示存储桶索引得很好,我可以向模型询问我上传的一份测试文档(使用 Workbench),它工作得很好。
我尝试过设置所有不同类型的位置。没有喜悦。
我知道代理与云存储的连接很好,因为如果存在任何权限问题,它不会让您保存您的选择。
我一直坚持使用gemini-1.0-pro-001(不是gemini-1.0-pro-002),因为gemini-1.0-pro-002不是代理中的一个选项。我不想模型冲突。
我想不出还有什么要检查的。
为了使模型基于源数据,您需要准备数据并将其保存到 Vertex AI Search。为此,您需要在 Vertex AI Agent Builder 中创建一个数据存储。
如果您从头开始,则需要准备数据以将其引入 Vertex AI Agent Builder。请参阅准备数据摄取以开始使用。根据数据的大小,摄取可能需要几分钟到几个小时。仅支持非结构化数据存储接地。
准备好要摄取的数据后,您可以创建搜索数据存储。成功创建数据存储后,创建一个搜索应用程序以链接到它并打开企业版。
这里是一个关于如何将 Gemini 1.5 Flash 型号接地的示例。按照以下说明使用您自己的数据建立模型。但在继续之前,需要先满足先决条件,然后才能将模型输出接地到数据中。