Skip to content

Commit c8d4969

Browse files
mossjujojoliang
authored andcommitted
更新ci内容审核接口
1 parent 360bc9b commit c8d4969

File tree

1 file changed

+239
-13
lines changed

1 file changed

+239
-13
lines changed

ci.go

Lines changed: 239 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,10 @@ func (s *CIService) ImageProcess(ctx context.Context, name string, opt *ImagePro
104104
type 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

109113
type ImageRecognitionResult struct {
@@ -114,12 +118,17 @@ type ImageRecognitionResult struct {
114118
AdsInfo *RecognitionInfo `xml:"AdsInfo,omitempty"`
115119
}
116120
type 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

143165
type PutVideoAuditingJobOptions struct {
144166
XMLName xml.Name `xml:"Request"`
145167
InputObject string `xml:"Input>Object"`
146168
Conf *VideoAuditingJobConf `xml:"Conf"`
147169
}
148170
type 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
}
153177
type 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
}
204229
type 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

225262
type 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
}
230268
type 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
}
234274
type PutAudioAuditingJobResult PutVideoAuditingJobResult
235-
type GetAudioAuditingJobResult GetVideoAuditingJobResult
236275

237276
// 音频审核-创建任务 https://cloud.tencent.com/document/product/460/53395
238277
func (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
252313
func (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

Comments
 (0)