Bug描述
你好,
我遇到了一个奇怪的错误。我正在使用Windows 11 Pro,
当我尝试在VertexAI上使用凭据文件时,我总是收到以下错误信息:
'Error Building Component
Error building Component Vertex AI: Your default credentials were not found. To set up Application Default Credentials, see https://cloud.google.com/docs/authentication/external/set-up-adc for more information.'
凭据已经在Flowise和其他应用程序中进行了测试,它们可以正常工作。也许Windows和这个应用程序以及路径有问题?也许应该有一个类似于Flowise中的凭据存储系统?
感谢帮助!
a.
复现步骤
使用基本提示模板。将OpenAI替换为Vertex AI模型。将包含凭据的文件放入其中。
预期行为
Error Building Component
Error building Component Vertex AI: Your default credentials were not found. To set up Application Default Credentials, see https://cloud.google.com/docs/authentication/external/set-up-adc for more information.
谁可以帮助?
- 无响应*
操作系统
Windows 11 pro
Langflow版本
1.0.9
Python版本
- 3.12
- 3.11
- 3.10
9条答案
按热度按时间ugmeyewa1#
嘿,@severfire!👋 我来帮助你解决bug问题,回答你的问题,引导你成为贡献者。让我们一起解决这些bug吧!
要解决在Windows 11 Pro上使用Vertex AI凭据时出现的"default credentials not found"错误,请确保在
params
字典中正确设置了credentials
参数。initialize_vertexai
函数需要一个指向服务帐户凭据文件的路径。以下是如何设置
credentials
参数的示例:请确保您的服务帐户JSON文件的路径是正确的,并且可以从您的Windows 11 Pro环境中访问。此外,请确保在
VertexAIComponent
类的build_config
方法中正确设置了credentials
参数,如下所示:请确保在
params
字典和build_config
方法中都正确设置了credentials
参数。这应该可以解决"default credentials not found"错误。xzabzqsa2#
@dosu Where should I edit this code you gave? Where are those files or where the code resides in app?
h22fl7wq3#
你应该编辑位于Langflow应用1(https://github.com/langflow-ai/langflow/blob/dev/src/frontend/src/modals/codeAreaModal/index.tsx)中的文件
src/frontend/src/modals/codeAreaModal/index.tsx
中的代码。ee7vknir4#
亲爱的@dosu,我认为你是错的,文件看起来不应该以这种方式编辑——我也不想寻找黑客,而是寻求更优雅的解决方案。
klh5stk15#
要解决Langflow中Vertex AI凭据的问题,您应该将
GOOGLE_APPLICATION_CREDENTIALS
环境变量设置为指向您的凭据JSON文件。这是为Google Cloud服务设置Application Default Credentials (ADC)的标准方法。以下是在Windows 11 Pro上设置
GOOGLE_APPLICATION_CREDENTIALS
环境变量的方法:path\to\your\service-account-file.json
)。GOOGLE_APPLICATION_CREDENTIALS
。C:\path\to\your\service-account-file.json
)。通过设置
GOOGLE_APPLICATION_CREDENTIALS
环境变量,Langflow中的Vertex AI组件应该能够找到并使用凭据,而无需进行任何代码更改。此外,Langflow还提供了一种直接在应用程序中配置凭据的方法。您可以在
initialize_vertexai
函数中设置src/backend/langflow/interface/initialize/llm.py
参数。以下是如何配置它的示例:您可以使用此函数直接初始化您的Vertex AI组件:
这种方法允许您在代码中直接指定凭据,从而提供了设置环境变量1(https://github.com/logspace-ai/langflow/blob/dev/src/backend/langflow/interface/initialize/llm.py)2(https://github.com/logspace-ai/langflow/blob/dev/src/backend/base/langflow/components/models/VertexAiModel.py)的替代方法。
gev0vcfq6#
亲爱的@dosu,
收到错误信息:'Error Building Component
构建组件顶点AI时出错:503 从插件获取元数据失败,错误信息:'str'对象没有'before_request'属性'。
使用变量修复的方法无效。
完整的错误信息如下:
File "C:\Users\arek\AppData\Roaming\Python\Python312\site-packages\google\api_core\grpc_helpers.py", line 76, in error_remapped_callable
return callable_(*args, **kwargs)
| | -> {'metadata': [('x-goog-request-params', 'model=projects//locations/us-central1/publishers/google/models/gemini-1.5-pro'), ('x...
| -> (model: "projects//locations/us-central1/publishers/google/models/gemini-1.5-pro"
| contents {
| role: "user"
| parts {
| tex...
-> <grpc._channel._UnaryUnaryMultiCallable object at 0x000001B9FEEA3C40>
File "C:\Users\arek\AppData\Roaming\Python\Python312\site-packages\grpc_channel.py", line 1181, in call
return _end_unary_response_blocking(state, call, False, None)
| | -> <grpc._cython.cygrpc.SegregatedCall object at 0x000001B9FEE288C0>
| -> <grpc._channel._RPCState object at 0x000001B9FED51B80>
-> <function _end_unary_response_blocking at 0x000001B9FAF6CA40>
File "C:\Users\arek\AppData\Roaming\Python\Python312\site-packages\grpc_channel.py", line 1006, in _end_unary_response_blocking
raise _InactiveRpcError(state) # pytype: disable=not-instantiable
| -> <grpc._channel._RPCState object at 0x000001B9FED51B80>
-> <class 'grpc._channel._InactiveRpcError'>
qlzsbp2j7#
要解决在Windows 11 Pro上使用Vertex AI凭据时出现的错误 "503 从插件获取元数据失败,错误:'str' 对象没有 'before_request' 属性",您需要确保将
credentials
参数正确地作为Credentials
对象传递,而不是包含凭据JSON文件路径的字符串。以下是
llm.py
文件中initialize_vertexai
函数的相关部分:确保
credentials
参数正确设置为您凭据JSON文件的路径,它将在initialize_vertexai
函数内转换为Credentials
对象。例如:确保凭据文件的路径正确且可以从您的环境中访问。
initialize_vertexai
函数将处理将路径转换为Credentials
对象,这应该解决与 'str' 对象没有 'before_request' 属性相关的错误 1(https://github.com/logspace-ai/langflow/blob/dev/src/backend/langflow/components/llms/VertexAI.py)2(https://github.com/logspace-ai/langflow/blob/dev/src/backend/langflow/interface/initialize/llm.py)。aydmsdu98#
关于之前的帖子
此外,Langflow提供了一种直接在应用程序中配置凭据的方法。您可以在
src/backend/langflow/interface/initialize/llm.py
中的initialize_vertexai
函数中设置credentials
参数。以下是如何配置它的示例:您可以使用此功能直接使用凭据初始化您的Vertex AI组件:
我应该把它放在哪里?如何在Python代码片段中使用它?
vuv7lop39#
要在Langflow应用中使用提供的代码片段,你应该将其放在
src/backend/base/langflow/components/models/VertexAiModel.py
文件中。这个文件为Google Vertex AI大型语言模型定义了一个自定义组件。以下是
ChatVertexAIComponent
类的完整代码片段:要在VertexAI节点的Python代码片段中使用此组件,可以根据需要示例化和配置
ChatVertexAIComponent
类。例如:这段代码片段演示了如何在您的应用程序 1(https://github.com/logspace-ai/langflow/blob/dev/src/backend/langflow/components/llms/VertexAI.py)2(https://github.com/langflow-ai/langflow/blob/dev/src/backend/base/langflow/components/models/VertexAiModel.py)3(https://github.com/logspace-ai/langflow/blob/dev/src/backend/base/langflow/components/models/VertexAiModel.py) 中配置和示例化
ChatVertexAIComponent
。