You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring AI调用Gemini Vertex AI 2.5 Flash时遇参数错误求助

问题:调用Vertex AI Gemini 2.5 Flash时提示缺少parts字段

INVALID_ARGUMENT: 无法提交请求,因为必须包含至少一个parts字段,该字段用于描述提示输入。

使用Spring AI + Gemini Vertex AI Gemini 2.5 Flash技术栈调用大语言模型时遇到上述错误,异常堆栈信息如下:

Suppressed: com.google.api.gax.rpc.AsyncTaskException: Asynchronous task failed
        at com.google.api.gax.rpc.ApiExceptions.callAndTranslateApiException(ApiExceptions.java:57)
        at com.google.api.gax.rpc.UnaryCallable.call(UnaryCallable.java:112)
        at com.google.cloud.vertexai.generativeai.GenerativeModel.generateContent(GenerativeModel.java:467)
        at com.google.cloud.vertexai.generativeai.GenerativeModel.generateContent(GenerativeModel.java:454)
        at org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.getContentResponse(VertexAiGeminiChatModel.java:775)
        at org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.lambda$internalCall$4(VertexAiGeminiChatModel.java:409)
        at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:357)
        at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230)
        at org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.lambda$internalCall$5(VertexAiGeminiChatModel.java:405)
        at io.micrometer.observation.Observation.observe(Observation.java:565)
        at org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.internalCall(VertexAiGeminiChatModel.java:405)
        at org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.call(VertexAiGeminiChatModel.java:392)
        at org.springframework.ai.chat.client.advisor.ChatModelCallAdvisor.adviseCall(ChatModelCallAdvisor.java:54)
        at org.springframework.ai.chat.client.advisor.DefaultAroundAdvisorChain.lambda$nextCall$1(DefaultAroundAdvisorChain.java:110)
        at io.micrometer.observation.Observation.observe(Observation.java:565)
        at org.springframework.ai.chat.client.advisor.DefaultAroundAdvisorChain.nextCall(DefaultAroundAdvisorChain.java:110)
        at org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor.adviseCall(SimpleLoggerAdvisor.java:74)
        at org.springframework.ai.chat.client.advisor.DefaultAroundAdvisorChain.lambda$nextCall$1(DefaultAroundAdvisorChain.java:110)
        at io.micrometer.observation.Observation.observe(Observation.java:565)
        at org.springframework.ai.chat.client.advisor.DefaultAroundAdvisorChain.nextCall(DefaultAroundAdvisorChain.java:110)
        at org.springframework.ai.chat.client.advisor.api.BaseAdvisor.adviseCall(BaseAdvisor.java:52)
        at org.springframework.ai.chat.client.advisor.DefaultAroundAdvisorChain.lambda$nextCall$1(DefaultAroundAdvisorChain.java:110)
        at io.micrometer.observation.Observation.observe(Observation.java:565)
        at org.springframework.ai.chat.client.advisor.DefaultAroundAdvisorChain.nextCall(DefaultAroundAdvisorChain.java:110)
        at org.springframework.ai.chat.client.DefaultChatClient$DefaultCallResponseSpec.lambda$doGetObservableChatClientResponse$1(DefaultChatClient.java:470)
        at io.micrometer.observation.Observation.observe(Observation.java:565)
        at org.springframework.ai.chat.client.DefaultChatClient$DefaultCallResponseSpec.doGetObservableChatClientResponse(DefaultChatClient.java:468)
        at org.springframework.ai.chat.client.DefaultChatClient$DefaultCallResponseSpec.doGetObservableChatClientResponse(DefaultChatClient.java:447)
        at org.springframework.ai.chat.client.DefaultChatClient$DefaultCallResponseSpec.content(DefaultChatClient.java:442)
        at com.agents.agents.orchestrator.OrchestratorAgent.safeLlmCall(OrchestratorAgent.java:1189)
        at com.agents.agents.orchestrator.OrchestratorAgent.handleRequest(OrchestratorAgent.java:599)
        at com.agents.controller.AIController.lambda$handleQuery$0(AIController.java:53)


Caused by: com.google.api.gax.rpc.InvalidArgumentException: io.grpc.StatusRuntimeException: INVALID_ARGUMENT: Unable to submit request because it must include at least one parts field, which describes the prompt input. Learn more: https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/gemini
    at com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:92)
    at com.google.api.gax.rpc.ApiExceptionFactory.createException(ApiExceptionFactory.java:41)
    at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:86)
    at com.google.api.gax.grpc.GrpcApiExceptionFactory.create(GrpcApiExceptionFactory.java:66)
    at com.google.api.gax.grpc.GrpcExceptionCallable$ExceptionTransformingFuture.onFailure(GrpcExceptionCallable.java:97)
    at com.google.api.core.ApiFutures$1.onFailure(ApiFutures.java:84)
    at com.google.common.util.concurrent.Futures$CallbackListener.run(Futures.java:1125)
    at com.google.common.util.concurrent.DirectExecutor.execute(DirectExecutor.java:30)



Failed to generate content
    at org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.getContentResponse(VertexAiGeminiChatModel.java:778)
    at org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.lambda$internalCall$4(VertexAiGeminiChatModel.java:409)
    at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:357)
    at org.springframework.retry.support.RetryTemplate.execute(RetryTemplate.java:230)
    at org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.lambda$internalCall$5(VertexAiGeminiChatModel.java:405)
    at io.micrometer.observation.Observation.observe(Observation.java:565)
    at org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.internalCall(VertexAiGeminiChatModel.java:405)
    at org.springframework.ai.vertexai.gemini.VertexAiGeminiChatModel.call(VertexAiGeminiChatModel.java:392)

解决方案

  • 检查提示内容有效性:确认传入LLM的提示文本不为空、null或仅含空白字符,重点排查safeLlmCall方法中构建请求的逻辑,确保有实际输入内容。
  • 规范Spring AI请求构建:
    • 使用ChatClient时,通过.prompt()明确传入有效文本,示例代码:
      ChatResponse response = chatClient.prompt("请提供有效的提示内容").call().content();
      
    • 多轮对话场景下,检查每一条对话消息(user/assistant角色)的内容均非空,避免出现空消息条目。
  • 验证Vertex AI配置:确认Spring AI中Vertex AI的模型名称、项目ID等配置参数正确,排除因配置错误导致的请求构造异常。
  • 排查预处理逻辑:如果有自定义的提示预处理代码,检查是否存在错误截断、过滤操作导致提示内容被清空。

内容的提问来源于stack exchange,提问作者Naveen Kumar R

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 03:45:56