【问题标题】:Unable to authenticate using API key无法使用 API 密钥进行身份验证
【发布时间】:2020-11-02 14:34:08
【问题描述】:

我正在尝试将服装检测模型与 Node.js 一起使用。我一直遇到2个错误。 我收到的第一个错误是:

无效的 API 密钥或无效的 API 密钥/应用程序对

从此代码创建:

const grpc = require("@grpc/grpc-js");

const stub=ClarifaiStub.grpc();
const metadata = new grpc.Metadata();
metadata.set("authorization", "Key xxxxxxxxxxxxxxxxxxxxxxxxxxx");

stub.PostModelOutputs(
    {
        model_id: "72c523807f93e18b431676fb9a58e6ad",
        version_id: "1ed35c3d176f45d69d2aa7971e6ab9fe",  // This is optional. Defaults to the latest model version.
        inputs: [
            {data: {image: {url: "https://sc01.alicdn.com/kf/HTB1VxCwKFXXXXXeaXXXq6xXFXXX1.jpg"}}}
        ]
    },
    metadata,
    (err, response) => {
        if (err) {
            throw new Error(err);
        }

        if (response.status.code !== 10000) {
            throw new Error("Post model outputs failed, status: " + response.status.description);
        }

        // Since we have one input, one output will exist here.
        const output = response.outputs[0];

        console.log("Predicted concepts:");
        for (const concept of output.data.concepts) {
            console.log(concept.name + " " + concept.value);
        }
    }
);

我遇到的第二个问题是尝试为此应用程序创建工作流时。选择服装模型并单击创建工作流时,我收到此消息:

您的请求已被阻止。缺少特征标志:[Model Visual Detector]

我收到相同的消息,但我尝试过不同的模型/模型组合。很抱歉,我现在感到很迷茫。感谢您的帮助。

【问题讨论】:

    标签: node.js clarifai


    【解决方案1】:

    使用您的 API 密钥,我能够成功调用模型。但是,我省略了 version_id 字段。看起来这个版本 id 不正确(如果你省略它,它只会获取模型的最新版本)。

    const grpc = require("@grpc/grpc-js");
    
    const stub=ClarifaiStub.grpc();
    const metadata = new grpc.Metadata();
    metadata.set("authorization", "Key xxxxxxxxxxxxxxxxxxxxxxxxxxx");
    
    stub.PostModelOutputs(
        {
            model_id: "72c523807f93e18b431676fb9a58e6ad",
            inputs: [
                {data: {image: {url: "https://sc01.alicdn.com/kf/HTB1VxCwKFXXXXXeaXXXq6xXFXXX1.jpg"}}}
            ]
        },
        metadata,
        (err, response) => {
            if (err) {
                throw new Error(err);
            }
    
            if (response.status.code !== 10000) {
                throw new Error("Post model outputs failed, status: " + response.status.description);
            }
    
            // Since we have one input, one output will exist here.
            const output = response.outputs[0];
    
            console.log("Predicted concepts:");
            for (const concept of output.data.concepts) {
                console.log(concept.name + " " + concept.value);
            }
        }
    );
    

    我掩盖了您的密钥(包括在答案中),因为您通常不想公开分享。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      • 2015-01-24
      • 2017-06-07
      • 2011-12-10
      相关资源
      最近更新 更多