# -*- coding: utf8 -*- # Copyright (c) 2017-2021 THL A29 Limited, a Tencent company. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import warnings from tencentcloud.common.abstract_model import AbstractModel class EvaluationRequest(AbstractModel): """Evaluation请求参数结构体 """ def __init__(self): r""" :param _SessionId: 图片唯一标识,一张图片一个SessionId; :type SessionId: str :param _Image: 图片数据,需要使用base64对图片的二进制数据进行编码,与url参数二者填一即可; :type Image: str :param _HcmAppid: 业务应用ID,与账号应用APPID无关,是用来方便客户管理服务的参数,新的 HcmAppid 可以在[控制台](https://console.cloud.tencent.com/hcm)【应用管理】下新建。 :type HcmAppid: str :param _Url: 图片url,与Image参数二者填一即可; :type Url: str :param _SupportHorizontalImage: 横屏拍摄开关,若开启则支持传输横屏拍摄的图片; :type SupportHorizontalImage: bool :param _RejectNonArithmeticImage: 拒绝非速算图(如风景图、人物图)开关,若开启,则遇到非速算图会快速返回拒绝的结果,但极端情况下可能会影响评估结果(比如算式截图贴到风景画里可能被判为非速算图直接返回了)。 :type RejectNonArithmeticImage: bool :param _IsAsync: 异步模式标识,0:同步模式,1:异步模式。默认为同步模式 :type IsAsync: int :param _EnableDispRelatedVertical: 是否展开耦合算式中的竖式计算 :type EnableDispRelatedVertical: bool :param _EnableDispMidresult: 是否展示竖式算式的中间结果和格式控制字符 :type EnableDispMidresult: bool :param _EnablePdfRecognize: 是否开启pdf识别,默认开启 :type EnablePdfRecognize: bool :param _PdfPageIndex: pdf页码,从0开始,默认为0 :type PdfPageIndex: int :param _LaTex: 是否返回LaTex,默认为0返回普通格式,设置成1返回LaTex格式 :type LaTex: int :param _RejectVagueArithmetic: 用于选择是否拒绝模糊题 目。打开则丢弃模糊题目, 不进行后续的判题返回结 果。 :type RejectVagueArithmetic: bool """ self._SessionId = None self._Image = None self._HcmAppid = None self._Url = None self._SupportHorizontalImage = None self._RejectNonArithmeticImage = None self._IsAsync = None self._EnableDispRelatedVertical = None self._EnableDispMidresult = None self._EnablePdfRecognize = None self._PdfPageIndex = None self._LaTex = None self._RejectVagueArithmetic = None @property def SessionId(self): """图片唯一标识,一张图片一个SessionId; :rtype: str """ return self._SessionId @SessionId.setter def SessionId(self, SessionId): self._SessionId = SessionId @property def Image(self): """图片数据,需要使用base64对图片的二进制数据进行编码,与url参数二者填一即可; :rtype: str """ return self._Image @Image.setter def Image(self, Image): self._Image = Image @property def HcmAppid(self): """业务应用ID,与账号应用APPID无关,是用来方便客户管理服务的参数,新的 HcmAppid 可以在[控制台](https://console.cloud.tencent.com/hcm)【应用管理】下新建。 :rtype: str """ return self._HcmAppid @HcmAppid.setter def HcmAppid(self, HcmAppid): self._HcmAppid = HcmAppid @property def Url(self): """图片url,与Image参数二者填一即可; :rtype: str """ return self._Url @Url.setter def Url(self, Url): self._Url = Url @property def SupportHorizontalImage(self): """横屏拍摄开关,若开启则支持传输横屏拍摄的图片; :rtype: bool """ return self._SupportHorizontalImage @SupportHorizontalImage.setter def SupportHorizontalImage(self, SupportHorizontalImage): self._SupportHorizontalImage = SupportHorizontalImage @property def RejectNonArithmeticImage(self): """拒绝非速算图(如风景图、人物图)开关,若开启,则遇到非速算图会快速返回拒绝的结果,但极端情况下可能会影响评估结果(比如算式截图贴到风景画里可能被判为非速算图直接返回了)。 :rtype: bool """ return self._RejectNonArithmeticImage @RejectNonArithmeticImage.setter def RejectNonArithmeticImage(self, RejectNonArithmeticImage): self._RejectNonArithmeticImage = RejectNonArithmeticImage @property def IsAsync(self): warnings.warn("parameter `IsAsync` is deprecated", DeprecationWarning) """异步模式标识,0:同步模式,1:异步模式。默认为同步模式 :rtype: int """ return self._IsAsync @IsAsync.setter def IsAsync(self, IsAsync): warnings.warn("parameter `IsAsync` is deprecated", DeprecationWarning) self._IsAsync = IsAsync @property def EnableDispRelatedVertical(self): """是否展开耦合算式中的竖式计算 :rtype: bool """ return self._EnableDispRelatedVertical @EnableDispRelatedVertical.setter def EnableDispRelatedVertical(self, EnableDispRelatedVertical): self._EnableDispRelatedVertical = EnableDispRelatedVertical @property def EnableDispMidresult(self): """是否展示竖式算式的中间结果和格式控制字符 :rtype: bool """ return self._EnableDispMidresult @EnableDispMidresult.setter def EnableDispMidresult(self, EnableDispMidresult): self._EnableDispMidresult = EnableDispMidresult @property def EnablePdfRecognize(self): """是否开启pdf识别,默认开启 :rtype: bool """ return self._EnablePdfRecognize @EnablePdfRecognize.setter def EnablePdfRecognize(self, EnablePdfRecognize): self._EnablePdfRecognize = EnablePdfRecognize @property def PdfPageIndex(self): """pdf页码,从0开始,默认为0 :rtype: int """ return self._PdfPageIndex @PdfPageIndex.setter def PdfPageIndex(self, PdfPageIndex): self._PdfPageIndex = PdfPageIndex @property def LaTex(self): """是否返回LaTex,默认为0返回普通格式,设置成1返回LaTex格式 :rtype: int """ return self._LaTex @LaTex.setter def LaTex(self, LaTex): self._LaTex = LaTex @property def RejectVagueArithmetic(self): """用于选择是否拒绝模糊题 目。打开则丢弃模糊题目, 不进行后续的判题返回结 果。 :rtype: bool """ return self._RejectVagueArithmetic @RejectVagueArithmetic.setter def RejectVagueArithmetic(self, RejectVagueArithmetic): self._RejectVagueArithmetic = RejectVagueArithmetic def _deserialize(self, params): self._SessionId = params.get("SessionId") self._Image = params.get("Image") self._HcmAppid = params.get("HcmAppid") self._Url = params.get("Url") self._SupportHorizontalImage = params.get("SupportHorizontalImage") self._RejectNonArithmeticImage = params.get("RejectNonArithmeticImage") self._IsAsync = params.get("IsAsync") self._EnableDispRelatedVertical = params.get("EnableDispRelatedVertical") self._EnableDispMidresult = params.get("EnableDispMidresult") self._EnablePdfRecognize = params.get("EnablePdfRecognize") self._PdfPageIndex = params.get("PdfPageIndex") self._LaTex = params.get("LaTex") self._RejectVagueArithmetic = params.get("RejectVagueArithmetic") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class EvaluationResponse(AbstractModel): """Evaluation返回参数结构体 """ def __init__(self): r""" :param _SessionId: 图片唯一标识,一张图片一个SessionId; :type SessionId: str :param _Items: 识别出的算式信息; 注意:此字段可能返回 null,表示取不到有效值。 :type Items: list of Item :param _TaskId: 任务 id,用于查询接口 :type TaskId: str :param _RequestId: 唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :type RequestId: str """ self._SessionId = None self._Items = None self._TaskId = None self._RequestId = None @property def SessionId(self): """图片唯一标识,一张图片一个SessionId; :rtype: str """ return self._SessionId @SessionId.setter def SessionId(self, SessionId): self._SessionId = SessionId @property def Items(self): """识别出的算式信息; 注意:此字段可能返回 null,表示取不到有效值。 :rtype: list of Item """ return self._Items @Items.setter def Items(self, Items): self._Items = Items @property def TaskId(self): warnings.warn("parameter `TaskId` is deprecated", DeprecationWarning) """任务 id,用于查询接口 :rtype: str """ return self._TaskId @TaskId.setter def TaskId(self, TaskId): warnings.warn("parameter `TaskId` is deprecated", DeprecationWarning) self._TaskId = TaskId @property def RequestId(self): """唯一请求 ID,由服务端生成,每次请求都会返回(若请求因其他原因未能抵达服务端,则该次请求不会获得 RequestId)。定位问题时需要提供该次请求的 RequestId。 :rtype: str """ return self._RequestId @RequestId.setter def RequestId(self, RequestId): self._RequestId = RequestId def _deserialize(self, params): self._SessionId = params.get("SessionId") if params.get("Items") is not None: self._Items = [] for item in params.get("Items"): obj = Item() obj._deserialize(item) self._Items.append(obj) self._TaskId = params.get("TaskId") self._RequestId = params.get("RequestId") class Item(AbstractModel): """识别出的算术式信息及评估结果 """ def __init__(self): r""" :param _Item: 识别的算式是否正确,算式运算结果: ‘YES’:正确 ‘NO’: 错误 ‘NA’: 非法参数 ‘EMPTY’: 未作答 :type Item: str :param _ItemString: 识别出的算式,识别出的文本行字符串 :type ItemString: str :param _ItemCoord: 识别的算式在图片上的位置信息,文本行在旋转纠正之后的图像中的像素坐 标,表示为(左上角 x, 左上角 y,宽 width, 高 height) :type ItemCoord: :class:`tencentcloud.hcm.v20181106.models.ItemCoord` :param _Answer: 错题推荐答案,算式运算结果正确返回为 "",算式运算结果错误返回推荐答案 (注:暂不支持多个关系运算符(如 1<10<7)、 无关系运算符(如 frac(1,2)+frac(2,3))、单 位换算(如 1 元=100 角)错题的推荐答案 返回) (注:使用@@标记答案填写区域) :type Answer: str :param _ExpressionType: 算式题型编号,如加减乘除四则题型,具体题型及编号如下:1 加减乘除四则 2 加减乘除已知结果求运算因子3 判断大小 4 约等于估算 5 带余数除法 6 分数四则运算 7 单位换算 8 竖式加减法 9 竖式乘除法 10 脱式计算 11 解方程 注意:此字段可能返回 null,表示取不到有效值。 :type ExpressionType: str :param _ItemConf: 文本行置信度 注意:此字段可能返回 null,表示取不到有效值。 :type ItemConf: float :param _QuestionId: 用于标识题目 id,如果有若干算式属于同一 题,则其对应的 id 相同。 注意:此字段可能返回 null,表示取不到有效值。 :type QuestionId: str """ self._Item = None self._ItemString = None self._ItemCoord = None self._Answer = None self._ExpressionType = None self._ItemConf = None self._QuestionId = None @property def Item(self): """识别的算式是否正确,算式运算结果: ‘YES’:正确 ‘NO’: 错误 ‘NA’: 非法参数 ‘EMPTY’: 未作答 :rtype: str """ return self._Item @Item.setter def Item(self, Item): self._Item = Item @property def ItemString(self): """识别出的算式,识别出的文本行字符串 :rtype: str """ return self._ItemString @ItemString.setter def ItemString(self, ItemString): self._ItemString = ItemString @property def ItemCoord(self): """识别的算式在图片上的位置信息,文本行在旋转纠正之后的图像中的像素坐 标,表示为(左上角 x, 左上角 y,宽 width, 高 height) :rtype: :class:`tencentcloud.hcm.v20181106.models.ItemCoord` """ return self._ItemCoord @ItemCoord.setter def ItemCoord(self, ItemCoord): self._ItemCoord = ItemCoord @property def Answer(self): """错题推荐答案,算式运算结果正确返回为 "",算式运算结果错误返回推荐答案 (注:暂不支持多个关系运算符(如 1<10<7)、 无关系运算符(如 frac(1,2)+frac(2,3))、单 位换算(如 1 元=100 角)错题的推荐答案 返回) (注:使用@@标记答案填写区域) :rtype: str """ return self._Answer @Answer.setter def Answer(self, Answer): self._Answer = Answer @property def ExpressionType(self): """算式题型编号,如加减乘除四则题型,具体题型及编号如下:1 加减乘除四则 2 加减乘除已知结果求运算因子3 判断大小 4 约等于估算 5 带余数除法 6 分数四则运算 7 单位换算 8 竖式加减法 9 竖式乘除法 10 脱式计算 11 解方程 注意:此字段可能返回 null,表示取不到有效值。 :rtype: str """ return self._ExpressionType @ExpressionType.setter def ExpressionType(self, ExpressionType): self._ExpressionType = ExpressionType @property def ItemConf(self): """文本行置信度 注意:此字段可能返回 null,表示取不到有效值。 :rtype: float """ return self._ItemConf @ItemConf.setter def ItemConf(self, ItemConf): self._ItemConf = ItemConf @property def QuestionId(self): """用于标识题目 id,如果有若干算式属于同一 题,则其对应的 id 相同。 注意:此字段可能返回 null,表示取不到有效值。 :rtype: str """ return self._QuestionId @QuestionId.setter def QuestionId(self, QuestionId): self._QuestionId = QuestionId def _deserialize(self, params): self._Item = params.get("Item") self._ItemString = params.get("ItemString") if params.get("ItemCoord") is not None: self._ItemCoord = ItemCoord() self._ItemCoord._deserialize(params.get("ItemCoord")) self._Answer = params.get("Answer") self._ExpressionType = params.get("ExpressionType") self._ItemConf = params.get("ItemConf") self._QuestionId = params.get("QuestionId") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set)) class ItemCoord(AbstractModel): """目标算式在图片上的坐标信息 """ def __init__(self): r""" :param _Height: 算式高度 :type Height: int :param _Width: 算式宽度 :type Width: int :param _X: 算式图的左上角横坐标 :type X: int :param _Y: 算式图的左上角纵坐标 :type Y: int """ self._Height = None self._Width = None self._X = None self._Y = None @property def Height(self): """算式高度 :rtype: int """ return self._Height @Height.setter def Height(self, Height): self._Height = Height @property def Width(self): """算式宽度 :rtype: int """ return self._Width @Width.setter def Width(self, Width): self._Width = Width @property def X(self): """算式图的左上角横坐标 :rtype: int """ return self._X @X.setter def X(self, X): self._X = X @property def Y(self): """算式图的左上角纵坐标 :rtype: int """ return self._Y @Y.setter def Y(self, Y): self._Y = Y def _deserialize(self, params): self._Height = params.get("Height") self._Width = params.get("Width") self._X = params.get("X") self._Y = params.get("Y") memeber_set = set(params.keys()) for name, value in vars(self).items(): property_name = name[1:] if property_name in memeber_set: memeber_set.remove(property_name) if len(memeber_set) > 0: warnings.warn("%s fileds are useless." % ",".join(memeber_set))
Memory