コード例 #1
0
 private WorkflowResult(ClarifaiStatus status, ClarifaiInput input,
                        List <ClarifaiOutput> predictions)
 {
     Status      = status;
     Input       = input;
     Predictions = predictions;
 }
コード例 #2
0
        private void ExecuteClarifai(byte[] imageBytes)
        {
            var generalModel = client.DefaultModels.GeneralModel();
            var response     = generalModel
                               .Predict()
                               .WithInputs(ClarifaiInput.ForImage(ClarifaiImage.Of(imageBytes)))
                               .ExecuteSync();


            if (!response.IsSuccessful)
            {
                return;
            }

            var predictions = (Java.Util.ArrayList)response.Get();

            if (predictions.IsEmpty)
            {
                return;
            }

            var clarifaiOutput = (ClarifaiOutput)predictions.Get(0);

            var data = clarifaiOutput.Data();

            RunOnUiThread(() => {
                conceptsAdapter.SetData(data.Cast <Concept>());
            });
        }
コード例 #3
0
        public void InputShouldBeCorrectlyDeserialized()
        {
            var           json  = JsonConvert.DeserializeObject <dynamic>(@"
{
        ""id"": ""@inputID"",
        ""data"": {
            ""image"": {
                ""url"": ""@imageURL""
            },
            ""concepts"": [
                {
                  ""id"": ""@positiveConcept"",
                  ""value"": 1
                },
                {
                  ""id"": ""@negativeConcept2"",
                  ""value"": 0
                }
            ]
        },
        ""created_at"": ""2017-10-13T20:53:00.253139Z"",
        ""modified_at"": ""2017-10-13T20:53:00.868659782Z"",
        ""status"": {
            ""code"": 30200,
            ""description"": ""Input image modification success""
        }
}");
            ClarifaiInput input = ClarifaiInput.Deserialize(json);

            Assert.AreEqual(input.ID, "@inputID");
            Assert.AreEqual(input.PositiveConcepts.ElementAt(0).ID, "@positiveConcept");
            Assert.AreEqual(input.NegativeConcepts.ElementAt(0).ID, "@negativeConcept2");
        }
コード例 #4
0
        /// <inheritdoc />
        protected override List <IClarifaiInput> Unmarshaller(dynamic jsonObject)
        {
            var inputs = new List <IClarifaiInput>();

            foreach (dynamic input in jsonObject.inputs)
            {
                inputs.Add(ClarifaiInput.Deserialize(input));
            }
            return(inputs);
        }
コード例 #5
0
        /// <summary>
        /// Deserializes the object out of a JSON dynamic object.
        /// </summary>
        /// <param name="modelType">the model type</param>
        /// <param name="jsonObject">the JSON object</param>
        /// <returns>the deserialized object</returns>
        public static ClarifaiOutput Deserialize(ModelType modelType, dynamic jsonObject)
        {
            dynamic data = DeserializePredictions(modelType, jsonObject);

            return(new ClarifaiOutput(
                       (string)jsonObject.id,
                       ClarifaiStatus.Deserialize(jsonObject.status),
                       (DateTime)jsonObject.created_at,
                       jsonObject.input != null ? ClarifaiInput.Deserialize(jsonObject.input) : null,
                       data));
        }
コード例 #6
0
        /// <summary>
        /// Deserializes the object out of a JSON dynamic object.
        /// </summary>
        /// <param name="modelType">the model type</param>
        /// <param name="jsonObject">the JSON object</param>
        /// <returns>the deserialized object</returns>
        public static ModerationOutput Deserialize(dynamic jsonObject)
        {
            List <Concept> data = DeserializePredictions(jsonObject);

            return(new ModerationOutput(
                       (string)jsonObject.id,
                       ClarifaiStatus.Deserialize(jsonObject.status),
                       (DateTime)jsonObject.created_at,
                       jsonObject.input != null ? ClarifaiInput.Deserialize(jsonObject.input) : null,
                       data,
                       Clarifai.Solutions.Moderation.DTOs.ModerationStatus.Deserialize(
                           jsonObject.moderation.status
                           )));
        }
コード例 #7
0
        /// <summary>
        /// Deserializes the object out of a JSON dynamic object.
        /// </summary>
        /// <param name="httpClient">the HTTP client</param>
        /// <param name="jsonObject">the JSON object</param>
        /// <returns>the deserialized object</returns>
        public static WorkflowResult Deserialize(IClarifaiHttpClient httpClient, dynamic jsonObject)
        {
            var status = ClarifaiStatus.Deserialize(jsonObject.status);
            var input  = ClarifaiInput.Deserialize(jsonObject.input);

            var predictions = new List <ClarifaiOutput>();

            foreach (dynamic output in jsonObject.outputs)
            {
                dynamic   model     = output.model;
                ModelType modelType = ModelType.DetermineModelType(
                    (string)model.output_info.type_ext);

                predictions.Add(ClarifaiOutput.Deserialize(httpClient, modelType, output));
            }

            return(new WorkflowResult(status, input, predictions));
        }
コード例 #8
0
 /// <inheritdoc />
 protected override IClarifaiInput Unmarshaller(dynamic jsonObject)
 {
     return(ClarifaiInput.Deserialize(jsonObject.inputs[0]));
 }
コード例 #9
0
 public static SearchHit Deserialize(dynamic jsonObject)
 {
     return(new SearchHit((decimal)jsonObject.score,
                          ClarifaiInput.Deserialize(jsonObject.input)));
 }
コード例 #10
0
 private SearchHit(decimal score, ClarifaiInput input)
 {
     Score = score;
     Input = input;
 }