我如何在基于 react.js 构建的项目上实施人口统计 Clarify.ai 模型?

How could i implement Demographic Clarify.ai model on project built on react.js?

我尝试使用基本的 Clarifai.FACE_DETECT_MODEL 构建一个简单的 React 应用程序,但现在我想将其更改为更高级的 "Demographic",也许有人知道如何做? 我知道我必须更改澄清模型,但我不知道具体怎么做

 onButtonClick = () =>{
    this.setState({imageUrl: this.state.input});
    app.modelsw
      .predict(
        Clarifai.FACE_DETECT_MODEL,
        this.state.input)
      .then(response =>this.displayFaceBox(this.calculateFaceLocation(response)))
      .catch(err => console.log("OOOOOOPS fix me!!!!"));}````


我想你可以替换 Clarifai.FACE_DETECT_MODEL"c0c0ac362b03416da06ab3fa36fb58e3" 以使其使用人口统计模型。

我不确定 Clarifai.DEMOGRAPHICS 之类的东西是否有效(您可以根据需要尝试)但我相信这只是一个变量,其中包含代表模型的字符串。您可以在 Web 浏览器的调试控制台中放置一个断点并检查 Clarifai 对象并查找以某种方式匹配人口统计的字段,这可能是散列的变量。

调用的输出在此处指定:https://www.clarifai.com/models/demographics-image-recognition-model-c0c0ac362b03416da06ab3fa36fb58e3#documentation

现在应该是:

onButtonClick = () =>{
  this.setState({imageUrl: this.state.input});
  app.modelsw
    .predict('c0c0ac362b03416da06ab3fa36fb58e3', this.state.input)
    .then(response =>this.displayFaceBox(this.calculateFaceLocation(response)))
    .catch(err => console.log('Oops fix me!'))
}

人口统计现在仅支持来自后端的请求。这是nodejs请求。

const {ClarifaiStub} = require("clarifai-nodejs-grpc");
const grpc = require("@grpc/grpc-js");

const metadata = new grpc.Metadata();
metadata.set("authorization", "{My key}");
const stub = ClarifaiStub.json()

stub.PostWorkflowResults(
    {
        workflow_id: "Demographics",
        inputs: [
            {data: {image: {url: "https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/06/06/15/Chris-Pratt.jpg"}}}
        ]
    },
    metadata,
    (err, response) => {
        if(response){
            console.log(response.results[0].outputs[2].data.regions[0].data.concepts)
        } else {
            console.log(err)
        }
    }
)