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

Google Vertex AI Java客户端(0.1.0)无法实现Gemini模型函数调用?

Java调用Vertex AI Gemini实现函数调用的正确方式

目前Vertex AI Java SDK的GenerativeModel类确实没有直接暴露通过Tool对象配置函数调用的直观入口,但你无需依赖私有方法,通过以下公开方式即可实现需求:

1. 直接通过请求构建器配置工具

使用GenerateContentRequest.Builder的addTool方法定义函数调用规则,再调用公开的生成方法即可:

// 定义函数工具
Tool weatherTool = Tool.newBuilder()
    .setFunctionDeclaration(FunctionDeclaration.newBuilder()
        .setName("get_current_weather")
        .setDescription("获取指定城市的实时天气数据")
        .addParameters(Parameter.newBuilder()
            .setName("city")
            .setType(Type.STRING)
            .setDescription("目标城市名称")
            .build())
        .build())
    .build();

// 构建包含工具的请求
GenerateContentRequest request = GenerateContentRequest.newBuilder()
    .addContents(Content.newBuilder()
        .addParts(Part.newBuilder().setText("上海现在气温多少?"))
        .build())
    .addTools(weatherTool)
    .build();

// 调用公开的流式生成接口
ResponseStream<GenerateContentResponse> responseStream = generativeModel.generateContentStream(request);

2. 确认SDK版本兼容性

检查你使用的com.google.cloud:google-cloud-vertexai SDK版本,旧版本可能未完整适配Gemini的函数调用特性,建议升级至最新稳定版,确保API的完整性。

关于私有方法的说明

你注意到的generateContentStream(Builder requestBuilder)是SDK内部实现的私有方法,不建议通过反射等手段强行调用——这种做法会导致代码稳定性极差,后续SDK版本更新大概率会破坏你的实现。

内容的提问来源于stack exchange,提问作者Paulo Taylor

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 01:43:19