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

已部署至Google Vertex AI的ML模型能否通过浏览器发送HTTP请求获取预测结果?

从浏览器向Vertex AI部署的模型发送预测请求的实现方案

当然可以实现从浏览器向你部署在Vertex AI上的ML模型发送预测请求,但直接用你提到的那种简单URL参数形式(http://myapp.cloud.google.com/input="features of an example")是行不通的——因为Vertex AI的预测API有特定的请求规范,而且直接在浏览器端处理认证会带来严重的安全风险。下面给你两种实用的实现方式:

一、通过中间层服务调用(推荐用于生产环境)

这是最安全且通用的方案,核心思路是用一个轻量的后端服务(比如Cloud Functions或Cloud Run)作为桥梁,帮你处理认证、请求格式转换,以及和Vertex AI模型的交互。

具体步骤:

    1. 编写中间层服务:创建一个Cloud Functions或Cloud Run服务,接收浏览器传来的URL参数(比如/predict?features=xxx),将参数转换成Vertex AI要求的输入格式(通常是JSON数组的instances字段)。
    1. 处理认证与预测请求:在中间层服务中使用Vertex AI的客户端库(Python/Node.js等)或者直接调用REST API,通过服务账号密钥完成认证,向模型Endpoint发送预测请求。
    1. 返回结果:将模型返回的预测结果处理后,返回给浏览器。

示例代码(Cloud Functions Python版):

import functions_framework
from google.cloud import aiplatform

# 初始化Vertex AI客户端(建议在函数外部初始化以提升性能)
aiplatform.init(project="你的项目ID", location="你的区域(如us-central1)")
endpoint = aiplatform.Endpoint("你的Endpoint ID")

@functions_framework.http
def predict(request):
    # 获取浏览器传来的features参数
    features = request.args.get('features')
    if not features:
        return "缺少必填参数:features", 400
    
    # 转换为模型要求的输入格式(根据你的模型输入结构调整)
    instances = [{"input_text": features}]
    # 发送预测请求
    prediction = endpoint.predict(instances=instances)
    
    # 返回预测结果
    return {"prediction": prediction.predictions[0]}

部署这个Cloud Function后,你就可以在浏览器中访问类似 https://你的函数域名/predict?features=你的示例特征 的URL,直接获取JSON格式的预测结果了。

二、直接在浏览器调用Vertex AI API(仅用于测试)

如果你只是做本地测试,不想搭建中间层,也可以直接在浏览器中调用Vertex AI的预测API,但绝对不能在生产环境使用这种方式——因为需要暴露API密钥或认证令牌,极易被滥用,导致不必要的成本损失。

测试用实现(JavaScript Fetch API):

async function fetchPrediction() {
    const inputFeatures = "features of an example";
    // 替换为你的项目、区域和Endpoint信息
    const apiUrl = "https://你的区域-aiplatform.googleapis.com/v1/projects/你的项目ID/locations/你的区域/endpoints/你的Endpoint ID:predict";
    // 替换为你的API密钥(在Cloud控制台创建并限制仅用于Vertex AI)
    const apiKey = "你的API密钥";

    try {
        const response = await fetch(`${apiUrl}?key=${apiKey}`, {
            method: 'POST',
            headers: {
                'Content-Type': 'application/json'
            },
            body: JSON.stringify({
                instances: [{"input_text": inputFeatures}] // 匹配你的模型输入结构
            })
        });
        const result = await response.json();
        console.log("预测结果:", result);
        // 在这里处理并展示结果给用户
    } catch (error) {
        console.error("请求出错:", error);
    }
}

注意事项:

  • 必须在Cloud控制台创建API密钥,并严格限制其使用范围(仅允许调用Vertex AI的预测API),降低泄露后的风险。
  • 这种方式只适合短期测试,生产环境一定要用中间层方案。

内容的提问来源于stack exchange,提问作者Sanyo Mn

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 10:37:38