review_service.go 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package review_service
  2. import (
  3. "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/moderation/v3/model"
  4. )
  5. /*
  6. result.suggestion:
  7. block:包含敏感信息,不通过
  8. review:需要人工复检
  9. pass:不包含敏感信息,通过
  10. */
  11. func (c *Config) CheckContent(text string) (*string, error) {
  12. request := &model.RunTextModerationRequest{}
  13. request.EnterpriseProjectId = &c.ProjectId
  14. eventType := "article"
  15. listCategoriesbody := []string{
  16. "terrorism", "porn", "ban", "abuse",
  17. }
  18. databody := model.TextDetectionDataReq{
  19. Text: text,
  20. }
  21. request.Body = &model.TextDetectionReq{
  22. Data: &databody,
  23. EventType: &eventType,
  24. Categories: &listCategoriesbody,
  25. }
  26. response, err := c.Client.RunTextModeration(request)
  27. if err != nil {
  28. res := "文本审核服务异常"
  29. return &res, err
  30. }
  31. result := response.Result
  32. suggestion := result.Suggestion
  33. return suggestion, nil
  34. }
  35. /*
  36. result.suggestion:
  37. block:包含敏感信息,不通过
  38. review:需要人工复检
  39. pass:不包含敏感信息,通过
  40. */
  41. func (c *Config) CheckImage(imageUrl string) (*string, error) {
  42. request := &model.CheckImageModerationRequest{}
  43. listCategoriesbody := []string{
  44. "terrorism", "porn",
  45. }
  46. eventType := "head_image"
  47. request.Body = &model.ImageDetectionReq{
  48. Url: &imageUrl,
  49. Categories: &listCategoriesbody,
  50. EventType: &eventType,
  51. }
  52. response, err := c.Client.CheckImageModeration(request)
  53. if err != nil {
  54. res := "图片审核服务异常"
  55. return &res, err
  56. }
  57. result := response.Result
  58. suggestion := result.Suggestion
  59. return suggestion, nil
  60. }
  61. func (c *Config) CheckVideo(videoUrl string) (*string, error) {
  62. request := &model.RunCreateVideoModerationJobRequest{}
  63. var listAudioCategoriesbody = []model.VideoCreateRequestAudioCategories{
  64. model.GetVideoCreateRequestAudioCategoriesEnum().PORN, model.GetVideoCreateRequestAudioCategoriesEnum().MOAN, model.GetVideoCreateRequestAudioCategoriesEnum().ABUSE,
  65. }
  66. var listImageCategoriesbody = []model.VideoCreateRequestImageCategories{
  67. model.GetVideoCreateRequestImageCategoriesEnum().PORN, model.GetVideoCreateRequestImageCategoriesEnum().TERRORISM,
  68. }
  69. var eventType = model.GetVideoCreateRequestEventTypeEnum().DEFAULT
  70. frameIntervalData := int32(2)
  71. databody := &model.VideoCreateRequestData{
  72. Url: videoUrl,
  73. FrameInterval: &frameIntervalData, // 截帧频率间隔
  74. }
  75. //callbackVideoCreateRequest := "http://xxx.xx.xxxx"
  76. request.Body = &model.VideoCreateRequest{
  77. AudioCategories: &listAudioCategoriesbody, // 视频中音频需要检测的风险类型
  78. ImageCategories: &listImageCategoriesbody, // 视频中画面需要检测的风险类型
  79. EventType: &eventType,
  80. Data: databody,
  81. //Callback: &callbackVideoCreateRequest,
  82. }
  83. response, err := c.Client.RunCreateVideoModerationJob(request)
  84. if err != nil {
  85. res := "视频审核服务异常"
  86. return &res, err
  87. }
  88. jobId := response.JobId
  89. return jobId, nil
  90. }
  91. /*
  92. result.suggestion:
  93. block:包含敏感信息,不通过
  94. review:需要人工复检
  95. pass:不包含敏感信息,通过
  96. */
  97. func (c *Config) CheckVideoInfo(jobId string) (status *string, suggestion *string, err error) {
  98. request := &model.RunQueryVideoModerationJobRequest{}
  99. request.JobId = jobId
  100. response, err := c.Client.RunQueryVideoModerationJob(request)
  101. if err != nil {
  102. return nil, nil, err
  103. }
  104. status1 := response.Status.Value()
  105. if "succeeded" == status1 {
  106. suggestion1 := response.Result.Suggestion.Value()
  107. return &status1, &suggestion1, nil
  108. } else {
  109. return &status1, nil, nil
  110. }
  111. }
  112. func (c *Config) CheckDocument(documentUrl, format string) (*string, error) {
  113. request := &model.RunCreateDocumentModerationJobRequest{}
  114. databody := &model.DocumentCreateRequestData{
  115. Url: documentUrl,
  116. Format: format,
  117. }
  118. request.Body = &model.DocumentCreateRequest{
  119. EventType: "default",
  120. Data: databody,
  121. }
  122. response, err := c.Client.RunCreateDocumentModerationJob(request)
  123. if err != nil {
  124. res := "文档审核服务异常"
  125. return &res, err
  126. }
  127. jobId := response.JobId
  128. return jobId, nil
  129. }
  130. /*
  131. result.suggestion:
  132. block:包含敏感信息,不通过
  133. review:需要人工复检
  134. pass:不包含敏感信息,通过
  135. */
  136. func (c *Config) CheckDocumentInfo(jobId string) (status *string, suggestion *string, err error) {
  137. request := &model.RunQueryDocumentModerationJobRequest{}
  138. request.JobId = jobId
  139. response, err := c.Client.RunQueryDocumentModerationJob(request)
  140. if err != nil {
  141. return nil, nil, err
  142. }
  143. status = response.Status
  144. if "succeeded" == *status {
  145. suggestion = response.Result.Suggestion
  146. return status, suggestion, nil
  147. } else {
  148. return status, nil, nil
  149. }
  150. }