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

如何在Google idx环境中配置Google应用凭据?

在Google IDX中使用Google Cloud Vision的正确配置方式

问题分析

你当前的代码存在两个核心问题:

  • 硬编码完整服务账号凭证,既不安全也不符合IDX环境的最佳实践
  • 使用了已废弃的vision.Client类,且idx.set_env的配置未被正确利用(直接传入credentials字典导致环境变量设置无效)

修正方案

1. 正确利用idx.set_env加载凭证

IDX环境无法使用os模块,但可通过idx.set_env设置环境变量,让Google Cloud SDK自动加载凭证文件,无需硬编码密钥。

2. 使用最新的Vision客户端类

google-cloud-vision当前官方推荐使用ImageAnnotatorClient替代旧的Client类,API更稳定且功能完整。

修正后的代码

import idx
from google.cloud import vision_v1 as vision

# 设置环境变量指向服务账号凭证文件
idx.set_env("GOOGLE_APPLICATION_CREDENTIALS", "test/stuffie-projet-cce8b453d29c.json")

def detect_text(path):
    """检测图片中的文本"""
    # 初始化客户端,自动通过环境变量加载凭证
    client = vision.ImageAnnotatorClient()

    with open(path, "rb") as image_file:
        content = image_file.read()

    image = vision.Image(content=content)

    # 调用文本检测API
    response = client.text_detection(image=image)
    texts = response.text_annotations

    print("检测到的文本:")
    for text in texts:
        print(f'\n"{text.description}"')
        vertices = [f"({vertex.x},{vertex.y})" for vertex in text.bounding_poly.vertices]
        print("边界坐标: {}".format(",".join(vertices)))

    if response.error.message:
        raise Exception(response.error.message)

# 执行检测
detect_text(path="test/yassir.png")

关键改动说明

  • 移除硬编码的credentials字典,通过idx.set_env指定凭证文件路径,Google Cloud SDK会自动读取文件完成认证
  • 替换为vision_v1.ImageAnnotatorClient,这是当前官方推荐的客户端实现
  • 简化客户端初始化逻辑,无需手动传入project参数(SDK会从凭证文件自动获取项目ID)

注意事项

  • 确保test/stuffie-projet-cce8b453d29c.json文件在IDX项目的正确路径下,可通过IDX文件管理器确认路径
  • 绝对不要将服务账号密钥文件提交到版本控制系统,避免密钥泄露
  • 如果IDX环境无法访问本地文件,可尝试将凭证文件上传到IDX项目目录中

内容的提问来源于stack exchange,提问作者Omar Elmehammedy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 04:59:58