使用 clarifai“人口统计”模型时,我不断收到错误消息
I keep getting an error when using the clarifai 'Demographics" model
TypeError: Cannot read property 'language' of undefined
人口统计模型在几个月前工作,当时我将它用作 'Clarifai.DEMOGRAPHICS_MODEL',但现在它给出了 404 错误。我想现在我应该将它用作 'Clarifai.Demographics' 但它给出了如图所示的错误。
我做错了什么还是一些 Clarifai 问题?我是 React 编程的新手,刚刚注意到我在使用 'Clarifai.DEMOGRAPHICS_MODEL' 之前制作的应用程序突然开始显示错误。
现在,我只是想让它工作
const onSubmit = () => {
app.models.predict(Clarifai.Demographics, "https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/06/06/15/Chris-Pratt.jpg")
.then(res => console.log(res))
}
新编辑:
最后,现在我可以从 clarifai 检索数据并将其发送到前端。后台代码留在这里,有需要的朋友可以参考
--------server.js---------
const express = require('express')
const cors = require('cors')
const posts = require('./demographics.js')
const app = express()
app.use(cors())
app.use(express.json())
const PORT = process.env.PORT || 5000
app.post('/data', posts.demographics)
app.listen(PORT, ()=> {
console.log('Working at port ',PORT)
})
--------demographics.js---------
const {ClarifaiStub, grpc} = require("clarifai-nodejs-grpc");
const stringify = require('json-stringify-safe');
const demographics = (req,res) => {
const stub = ClarifaiStub.grpc()
const metadata = new grpc.Metadata();
metadata.set("authorization", "Key {My_Key}");
stub.PostWorkflowResults(
{
workflow_id: "Demographics",
inputs: [
{data: {image: {url: req.body.input}}}
]
},
metadata,
(err, response) => {
if(response){
const data = stringify(response.results[0].outputs[4].data.regions, null, 2)
res.send(data)
}
else {
console.log(err)
res.status(400)
}
}
)
}
Clarifai JS Rest 客户端现已折旧,模型 ID 未更新,此特定人口统计模型也正在折旧过程中。您可以将其替换为新的 gRPC NodeJS API:https://docs.clarifai.com/api-guide/api-overview/api-clients
然后您可以通过调用新的人口统计工作流来获得人口统计预测:https://docs.clarifai.com/api-guide/workflows/workflow-predict(将“YOUR_WORKFLOW_ID”替换为“”人口统计')
您必须从前端或后端调用请求。
人口统计现在只支持来自后端的请求。
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)
}
使用它来返回结果
// response.results[0].outputs[2].data.regions[0].data.concepts, muliticulture,
// response.results[0].outputs[3].data.regions[0].data.concepts, gender,
//response.results[0].outputs[4].data.regions[0].data.concepts, age,
TypeError: Cannot read property 'language' of undefined
人口统计模型在几个月前工作,当时我将它用作 'Clarifai.DEMOGRAPHICS_MODEL',但现在它给出了 404 错误。我想现在我应该将它用作 'Clarifai.Demographics' 但它给出了如图所示的错误。 我做错了什么还是一些 Clarifai 问题?我是 React 编程的新手,刚刚注意到我在使用 'Clarifai.DEMOGRAPHICS_MODEL' 之前制作的应用程序突然开始显示错误。
现在,我只是想让它工作
const onSubmit = () => {
app.models.predict(Clarifai.Demographics, "https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/06/06/15/Chris-Pratt.jpg")
.then(res => console.log(res))
}
新编辑:
最后,现在我可以从 clarifai 检索数据并将其发送到前端。后台代码留在这里,有需要的朋友可以参考
--------server.js---------
const express = require('express')
const cors = require('cors')
const posts = require('./demographics.js')
const app = express()
app.use(cors())
app.use(express.json())
const PORT = process.env.PORT || 5000
app.post('/data', posts.demographics)
app.listen(PORT, ()=> {
console.log('Working at port ',PORT)
})
--------demographics.js---------
const {ClarifaiStub, grpc} = require("clarifai-nodejs-grpc");
const stringify = require('json-stringify-safe');
const demographics = (req,res) => {
const stub = ClarifaiStub.grpc()
const metadata = new grpc.Metadata();
metadata.set("authorization", "Key {My_Key}");
stub.PostWorkflowResults(
{
workflow_id: "Demographics",
inputs: [
{data: {image: {url: req.body.input}}}
]
},
metadata,
(err, response) => {
if(response){
const data = stringify(response.results[0].outputs[4].data.regions, null, 2)
res.send(data)
}
else {
console.log(err)
res.status(400)
}
}
)
}
Clarifai JS Rest 客户端现已折旧,模型 ID 未更新,此特定人口统计模型也正在折旧过程中。您可以将其替换为新的 gRPC NodeJS API:https://docs.clarifai.com/api-guide/api-overview/api-clients
然后您可以通过调用新的人口统计工作流来获得人口统计预测:https://docs.clarifai.com/api-guide/workflows/workflow-predict(将“YOUR_WORKFLOW_ID”替换为“”人口统计')
您必须从前端或后端调用请求。 人口统计现在只支持来自后端的请求。
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)
}
使用它来返回结果
// response.results[0].outputs[2].data.regions[0].data.concepts, muliticulture,
// response.results[0].outputs[3].data.regions[0].data.concepts, gender,
//response.results[0].outputs[4].data.regions[0].data.concepts, age,