@@ -104,6 +104,10 @@ func (s *CIService) ImageProcess(ctx context.Context, name string, opt *ImagePro
104104type ImageRecognitionOptions struct {
105105 CIProcess string `url:"ci-process,omitempty"`
106106 DetectType string `url:"detect-type,omitempty"`
107+ DetectUrl string `url:"detect-url,omitempty"`
108+ Interval int `url:"interval,omitempty"`
109+ MaxFrames int `url:"max-frames,omitempty"`
110+ BizType string `url:"biz-type,omitempty"`
107111}
108112
109113type ImageRecognitionResult struct {
@@ -114,12 +118,17 @@ type ImageRecognitionResult struct {
114118 AdsInfo * RecognitionInfo `xml:"AdsInfo,omitempty"`
115119}
116120type RecognitionInfo struct {
117- Code int `xml:"Code,omitempty"`
118- Msg string `xml:"Msg,omitempty"`
119- HitFlag int `xml:"HitFlag,omitempty"`
120- Score int `xml:"Score,omitempty"`
121- Label string `xml:"Label,omitempty"`
122- Count int `xml:"Count,omitempty"`
121+ Code int `xml:"Code,omitempty"`
122+ Msg string `xml:"Msg,omitempty"`
123+ HitFlag int `xml:"HitFlag,omitempty"`
124+ Score int `xml:"Score,omitempty"`
125+ Label string `xml:"Label,omitempty"`
126+ Count int `xml:"Count,omitempty"`
127+ SubLabel string `xml:"SubLabel,omitempty"`
128+ Keywords string `xml:"Keywords,omitempty"`
129+ OcrResults []OcrResult `xml:"OcrResults,omitempty"`
130+ ObjectResults []ObjectResult `xml:"ObjectResults,omitempty"`
131+ LibResults []LibResult `xml:"LibResults,omitempty"`
123132}
124133
125134// 图片审核 https://cloud.tencent.com/document/product/460/37318
@@ -139,16 +148,31 @@ func (s *CIService) ImageRecognition(ctx context.Context, name string, DetectTyp
139148 resp , err := s .client .send (ctx , & sendOpt )
140149 return & res , resp , err
141150}
151+ // 图片审核 支持detect-url等全部参数
152+ func (s * CIService ) ImageAuditing (ctx context.Context , name string , opt * ImageRecognitionOptions ) (* ImageRecognitionResult , * Response , error ) {
153+ var res ImageRecognitionResult
154+ sendOpt := sendOptions {
155+ baseURL : s .client .BaseURL .BucketURL ,
156+ uri : "/" + encodeURIComponent (name ),
157+ method : http .MethodGet ,
158+ optQuery : opt ,
159+ result : & res ,
160+ }
161+ resp , err := s .client .send (ctx , & sendOpt )
162+ return & res , resp , err
163+ }
142164
143165type PutVideoAuditingJobOptions struct {
144166 XMLName xml.Name `xml:"Request"`
145167 InputObject string `xml:"Input>Object"`
146168 Conf * VideoAuditingJobConf `xml:"Conf"`
147169}
148170type VideoAuditingJobConf struct {
149- DetectType string `xml:",omitempty"`
150- Snapshot * PutVideoAuditingJobSnapshot `xml:",omitempty"`
151- Callback string `xml:",omitempty"`
171+ DetectType string `xml:",omitempty"`
172+ Snapshot * PutVideoAuditingJobSnapshot `xml:",omitempty"`
173+ Callback string `xml:",omitempty"`
174+ BizType string `xml:",omitempty"`
175+ DetectContent int `xml:",omitempty"`
152176}
153177type PutVideoAuditingJobSnapshot struct {
154178 Mode string `xml:",omitempty"`
@@ -200,9 +224,22 @@ type AuditingJobDetail struct {
200224 PoliticsInfo * RecognitionInfo `xml:",omitempty"`
201225 AdsInfo * RecognitionInfo `xml:",omitempty"`
202226 Snapshot * GetVideoAuditingJobSnapshot `xml:",omitempty"`
227+ AudioSection * AudioSectionResult `xml:",omitempty"`
203228}
204229type GetVideoAuditingJobSnapshot struct {
205230 Url string `xml:",omitempty"`
231+ SnapshotTime string `xml:",omitempty"`
232+ Text string `xml:",omitempty"`
233+ PornInfo * RecognitionInfo `xml:",omitempty"`
234+ TerrorismInfo * RecognitionInfo `xml:",omitempty"`
235+ PoliticsInfo * RecognitionInfo `xml:",omitempty"`
236+ AdsInfo * RecognitionInfo `xml:",omitempty"`
237+ }
238+ type AudioSectionResult struct {
239+ Url string `xml:",omitempty"`
240+ Text string `xml:",omitempty"`
241+ OffsetTime int `xml:",omitempty"`
242+ Duration int `xml:",omitempty"`
206243 PornInfo * RecognitionInfo `xml:",omitempty"`
207244 TerrorismInfo * RecognitionInfo `xml:",omitempty"`
208245 PoliticsInfo * RecognitionInfo `xml:",omitempty"`
@@ -224,15 +261,17 @@ func (s *CIService) GetVideoAuditingJob(ctx context.Context, jobid string) (*Get
224261
225262type PutAudioAuditingJobOptions struct {
226263 XMLName xml.Name `xml:"Request"`
227- InputObject string `xml:"Input>Object"`
264+ InputObject string `xml:"Input>Object,omitempty"`
265+ InputUrl string `xml:"Input>Url,omitempty"`
228266 Conf * AudioAuditingJobConf `xml:"Conf"`
229267}
230268type AudioAuditingJobConf struct {
231- DetectType string `xml:",omitempty"`
232- Callback string `xml:",omitempty"`
269+ DetectType string `xml:",omitempty"`
270+ Callback string `xml:",omitempty"`
271+ CallbackVersion string `xml:",omitempty"`
272+ BizType string `xml:",omitempty"`
233273}
234274type PutAudioAuditingJobResult PutVideoAuditingJobResult
235- type GetAudioAuditingJobResult GetVideoAuditingJobResult
236275
237276// 音频审核-创建任务 https://cloud.tencent.com/document/product/460/53395
238277func (s * CIService ) PutAudioAuditingJob (ctx context.Context , opt * PutAudioAuditingJobOptions ) (* PutAudioAuditingJobResult , * Response , error ) {
@@ -248,6 +287,28 @@ func (s *CIService) PutAudioAuditingJob(ctx context.Context, opt *PutAudioAuditi
248287 return & res , resp , err
249288}
250289
290+ type GetAudioAuditingJobResult struct {
291+ XMLName xml.Name `xml:"Response"`
292+ JobsDetail * AudioAuditingJobDetail `xml:",omitempty"`
293+ NonExistJobIds string `xml:",omitempty"`
294+ }
295+ type AudioAuditingJobDetail struct {
296+ Code string `xml:",omitempty"`
297+ Message string `xml:",omitempty"`
298+ JobId string `xml:",omitempty"`
299+ State string `xml:",omitempty"`
300+ CreationTime string `xml:",omitempty"`
301+ Object string `xml:",omitempty"`
302+ Url string `xml:",omitempty"`
303+ Result int `xml:",omitempty"`
304+ AudioText string `xml:",omitempty"`
305+ PornInfo * RecognitionInfo `xml:",omitempty"`
306+ TerrorismInfo * RecognitionInfo `xml:",omitempty"`
307+ PoliticsInfo * RecognitionInfo `xml:",omitempty"`
308+ AdsInfo * RecognitionInfo `xml:",omitempty"`
309+ Section * AudioSectionResult `xml:",omitempty"`
310+ }
311+
251312// 音频审核-查询任务 https://cloud.tencent.com/document/product/460/53396
252313func (s * CIService ) GetAudioAuditingJob (ctx context.Context , jobid string ) (* GetAudioAuditingJobResult , * Response , error ) {
253314 var res GetAudioAuditingJobResult
@@ -261,6 +322,171 @@ func (s *CIService) GetAudioAuditingJob(ctx context.Context, jobid string) (*Get
261322 return & res , resp , err
262323}
263324
325+ type PutTextAuditingJobOptions struct {
326+ XMLName xml.Name `xml:"Request"`
327+ InputObject string `xml:"Input>Object,omitempty"`
328+ InputContent string `xml:"Input>Content,omitempty"`
329+ Conf * TextAuditingJobConf `xml:"Conf"`
330+ }
331+ type TextAuditingJobConf struct {
332+ DetectType string `xml:",omitempty"`
333+ Callback string `xml:",omitempty"`
334+ BizType string `xml:",omitempty"`
335+ }
336+ type PutTextAuditingJobResult GetTextAuditingJobResult
337+
338+ // 文本审核-创建任务 https://cloud.tencent.com/document/product/436/56289
339+ func (s * CIService ) PutTextAuditingJob (ctx context.Context , opt * PutTextAuditingJobOptions ) (* PutTextAuditingJobResult , * Response , error ) {
340+ var res PutTextAuditingJobResult
341+ sendOpt := sendOptions {
342+ baseURL : s .client .BaseURL .CIURL ,
343+ uri : "/text/auditing" ,
344+ method : http .MethodPost ,
345+ body : opt ,
346+ result : & res ,
347+ }
348+ resp , err := s .client .send (ctx , & sendOpt )
349+ return & res , resp , err
350+ }
351+
352+ type GetTextAuditingJobResult struct {
353+ XMLName xml.Name `xml:"Response"`
354+ JobsDetail * TextAuditingJobDetail `xml:",omitempty"`
355+ NonExistJobIds string `xml:",omitempty"`
356+ }
357+ type TextAuditingJobDetail struct {
358+ Code string `xml:",omitempty"`
359+ Message string `xml:",omitempty"`
360+ JobId string `xml:",omitempty"`
361+ State string `xml:",omitempty"`
362+ CreationTime string `xml:",omitempty"`
363+ Object string `xml:",omitempty"`
364+ SectionCount int `xml:",omitempty"`
365+ Result int `xml:",omitempty"`
366+ PornInfo * RecognitionInfo `xml:",omitempty"`
367+ TerrorismInfo * RecognitionInfo `xml:",omitempty"`
368+ PoliticsInfo * RecognitionInfo `xml:",omitempty"`
369+ AdsInfo * RecognitionInfo `xml:",omitempty"`
370+ IllegalInfo * RecognitionInfo `xml:",omitempty"`
371+ AbuseInfo * RecognitionInfo `xml:",omitempty"`
372+ Section * TextSectionResult `xml:",omitempty"`
373+ }
374+ type TextSectionResult struct {
375+ StartByte int `xml:",omitempty"`
376+ PornInfo * RecognitionInfo `xml:",omitempty"`
377+ TerrorismInfo * RecognitionInfo `xml:",omitempty"`
378+ PoliticsInfo * RecognitionInfo `xml:",omitempty"`
379+ AdsInfo * RecognitionInfo `xml:",omitempty"`
380+ IllegalInfo * RecognitionInfo `xml:",omitempty"`
381+ AbuseInfo * RecognitionInfo `xml:",omitempty"`
382+ }
383+
384+ // 文本审核-查询任务 https://cloud.tencent.com/document/product/436/56288
385+ func (s * CIService ) GetTextAuditingJob (ctx context.Context , jobid string ) (* GetTextAuditingJobResult , * Response , error ) {
386+ var res GetTextAuditingJobResult
387+ sendOpt := sendOptions {
388+ baseURL : s .client .BaseURL .CIURL ,
389+ uri : "/text/auditing/" + jobid ,
390+ method : http .MethodGet ,
391+ result : & res ,
392+ }
393+ resp , err := s .client .send (ctx , & sendOpt )
394+ return & res , resp , err
395+ }
396+
397+ type PutDocumentAuditingJobOptions struct {
398+ XMLName xml.Name `xml:"Request"`
399+ InputUrl string `xml:"Input>Url,omitempty"`
400+ InputType string `xml:"Input>Type,omitempty"`
401+ Conf * DocumentAuditingJobConf `xml:"Conf"`
402+ }
403+ type DocumentAuditingJobConf TextAuditingJobConf
404+ type PutDocumentAuditingJobResult PutVideoAuditingJobResult
405+
406+ // 文档审核-创建任务 https://cloud.tencent.com/document/product/436/59381
407+ func (s * CIService ) PutDocumentAuditingJob (ctx context.Context , opt * PutDocumentAuditingJobOptions ) (* PutDocumentAuditingJobResult , * Response , error ) {
408+ var res PutDocumentAuditingJobResult
409+ sendOpt := sendOptions {
410+ baseURL : s .client .BaseURL .CIURL ,
411+ uri : "/document/auditing" ,
412+ method : http .MethodPost ,
413+ body : opt ,
414+ result : & res ,
415+ }
416+ resp , err := s .client .send (ctx , & sendOpt )
417+ return & res , resp , err
418+ }
419+
420+ type GetDocumentAuditingJobResult struct {
421+ XMLName xml.Name `xml:"Response"`
422+ JobsDetail * DocumentAuditingJobDetail `xml:",omitempty"`
423+ NonExistJobIds string `xml:",omitempty"`
424+ }
425+ type DocumentAuditingJobDetail struct {
426+ Code string `xml:",omitempty"`
427+ Message string `xml:",omitempty"`
428+ JobId string `xml:",omitempty"`
429+ State string `xml:",omitempty"`
430+ CreationTime string `xml:",omitempty"`
431+ Suggestion int `xml:",omitempty"`
432+ Url string `xml:",omitempty"`
433+ PageCount int `xml:",omitempty"`
434+ Labels * DocumentResultInfo `xml:",omitempty"`
435+ PageSegment * DocumentPageSegmentInfo `xml:",omitempty"`
436+ }
437+ type DocumentResultInfo struct {
438+ PornInfo * RecognitionInfo `xml:",omitempty"`
439+ TerrorismInfo * RecognitionInfo `xml:",omitempty"`
440+ PoliticsInfo * RecognitionInfo `xml:",omitempty"`
441+ AdsInfo * RecognitionInfo `xml:",omitempty"`
442+ }
443+ type DocumentPageSegmentInfo struct {
444+ Results []DocumentPageSegmentResultResult `xml:",omitempty"`
445+ }
446+ type DocumentPageSegmentResultResult struct {
447+ Url string `xml:",omitempty"`
448+ Text string `xml:",omitempty"`
449+ PageNumber int `xml:",omitempty"`
450+ SheetNumber int `xml:",omitempty"`
451+ PornInfo * RecognitionInfo `xml:",omitempty"`
452+ TerrorismInfo * RecognitionInfo `xml:",omitempty"`
453+ PoliticsInfo * RecognitionInfo `xml:",omitempty"`
454+ AdsInfo * RecognitionInfo `xml:",omitempty"`
455+ }
456+ type OcrResult struct {
457+ Text string `xml:"Text"`
458+ Keywords []string `xml:"Keywords"`
459+ Location * Location `xml:"Location,omitempty"`
460+ }
461+ type ObjectResult struct {
462+ Name string `xml:"Name"`
463+ Location * Location `xml:"Location,omitempty"`
464+ }
465+ type LibResult struct {
466+ ImageId string `xml:"ImageId"`
467+ Score uint32 `xml:"Score"`
468+ }
469+ type Location struct {
470+ X float64 `json:"X"` // 左上角横坐标
471+ Y float64 `json:"Y"` // 左上角纵坐标
472+ Width float64 `json:"Width"` // 宽度
473+ Height float64 `json:"Height"` // 高度
474+ Rotate float64 `json:"Rotate"` // 检测框的旋转角度
475+ }
476+
477+ // 文档审核-查询任务 https://cloud.tencent.com/document/product/436/59382
478+ func (s * CIService ) GetDocumentAuditingJob (ctx context.Context , jobid string ) (* GetDocumentAuditingJobResult , * Response , error ) {
479+ var res GetDocumentAuditingJobResult
480+ sendOpt := sendOptions {
481+ baseURL : s .client .BaseURL .CIURL ,
482+ uri : "/document/auditing/" + jobid ,
483+ method : http .MethodGet ,
484+ result : & res ,
485+ }
486+ resp , err := s .client .send (ctx , & sendOpt )
487+ return & res , resp , err
488+ }
489+
264490// 图片持久化处理-上传时处理 https://cloud.tencent.com/document/product/460/18147
265491// 盲水印-上传时添加 https://cloud.tencent.com/document/product/460/19017
266492// 二维码识别-上传时识别 https://cloud.tencent.com/document/product/460/37513
0 commit comments