"github.com/volcengine/volcengine-go-sdk/service/llmshield"
datainfo1 = "/Users/file/demo.mp3"
dataMap = map[string]*DcInfo{
datainfo1: {"mp3", llmshield.ContentTypeV2_AUDIO},
var response *llmshield.ModerateV2Response
appid := "app-d7nghjo2pj8m2d2s****"
myUrl := "https://cn-beijing.sdk.access.llm-shield.omini-shield.com"
timeout := time.Second * 20
client := llmshield.NewAdvanced(myUrl, ak, sk, region, timeout, "http://10.37.**.**:8888", 30)
fmt.Printf("Failed to create client instance\n")
request := llmshield.ModerateV2Request{Message: nil, Scene: appid}
request.Message = filledMsgContent(role)
response, err = client.Moderate(&request)
fmt.Printf("Error occurred while checking LLM response stream: %v\n", err)
fmt.Println("Received empty result")
fmt.Printf("Received result: %s\n", response.String())
func filledMsgContent(role string) *llmshield.MessageV2 {
msg_multi := &llmshield.MessageV2{
for dataInfo, cGroup := range dataMap {
case llmshield.ContentTypeV2_TEXT:
case llmshield.ContentTypeV2_IMAGE, llmshield.ContentTypeV2_FILE, llmshield.ContentTypeV2_AUDIO, llmshield.ContentTypeV2_VIDEO:
content, err = encodeFileToBase64(cGroup.ftype, dataInfo)
fmt.Printf("Failed to encode file content:%v,err:%v\n", content, err)
multPart := &llmshield.MultiPart{
ContentType: cGroup.Dtype,
msg_multi.MultiPart = append(msg_multi.MultiPart, multPart)
func encodeFileToBase64(ftype string, filePath string) (string, error) {
data, err := os.ReadFile(filePath)
return "", fmt.Errorf("读取文件失败: %v", err)
base64Str := base64.StdEncoding.EncodeToString(data)
switch strings.ToLower(ftype) {
case "jpg", "jpeg", "jpe":
base64Str = "data:image/jpeg;base64," + base64Str
base64Str = "data:image/png;base64," + base64Str
base64Str = "data:image/gif;base64," + base64Str
base64Str = "data:image/bmp;base64," + base64Str
base64Str = "data:image/tiff;base64," + base64Str
base64Str = "data:image/webp;base64," + base64Str
base64Str = "data:image/svg+xml;base64," + base64Str
base64Str = "data:image/x-icon;base64," + base64Str
base64Str = "data:image/heic;base64," + base64Str
base64Str = "data:image/heif;base64," + base64Str
base64Str = "data:application/msword;base64," + base64Str
base64Str = "data:application/vnd.openxmlformats-officedocument.wordprocessingml.document;base64," + base64Str
base64Str = "data:application/vnd.ms-powerpoint;base64," + base64Str
base64Str = "data:application/vnd.openxmlformats-officedocument.presentationml.presentation;base64," + base64Str
base64Str = "data:application/pdf;base64," + base64Str
base64Str = "data:text/plain;base64," + base64Str
base64Str = "data:application/vnd.ms-excel;base64," + base64Str
base64Str = "data:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;base64," + base64Str
base64Str = "data:audio/mpeg;base64," + base64Str
base64Str = "data:audio/wav;base64," + base64Str
base64Str = "data:video/mp4;base64," + base64Str
base64Str = "data:video/x-msvideo;base64," + base64Str
if len(base64Str) > 50 {
fmt.Printf("Headfile: %v\n", strings.Split(base64Str[:50], "base64,")[0])
Dtype llmshield.ContentTypeV2