MCPcopy Create free account
hub / github.com/aiprodcoder/MIXAPI / ParseContent

Method ParseContent

dto/openai_request.go:294–425  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

292}
293
294func (m *Message) ParseContent() []MediaContent {
295 if m.Content == nil {
296 return nil
297 }
298 if len(m.parsedContent) > 0 {
299 return m.parsedContent
300 }
301
302 var contentList []MediaContent
303 // 先尝试解析为字符串
304 content, ok := m.Content.(string)
305 if ok {
306 contentList = []MediaContent{{
307 Type: ContentTypeText,
308 Text: content,
309 }}
310 m.parsedContent = contentList
311 return contentList
312 }
313
314 // 尝试解析为数组
315 //var arrayContent []map[string]interface{}
316
317 arrayContent, ok := m.Content.([]any)
318 if !ok {
319 return contentList
320 }
321
322 for _, contentItemAny := range arrayContent {
323 mediaItem, ok := contentItemAny.(MediaContent)
324 if ok {
325 contentList = append(contentList, mediaItem)
326 continue
327 }
328
329 contentItem, ok := contentItemAny.(map[string]any)
330 if !ok {
331 continue
332 }
333 contentType, ok := contentItem["type"].(string)
334 if !ok {
335 continue
336 }
337
338 switch contentType {
339 case ContentTypeText:
340 if text, ok := contentItem["text"].(string); ok {
341 contentList = append(contentList, MediaContent{
342 Type: ContentTypeText,
343 Text: text,
344 })
345 }
346
347 case ContentTypeImageURL:
348 imageUrl := contentItem["image_url"]
349 temp := &MessageImageUrl{
350 Detail: "high",
351 }

Callers 1

ClaudeToOpenAIRequestFunction · 0.95

Calls

no outgoing calls

Tested by

no test coverage detected