text.go 1022 B

123456789101112131415161718192021222324252627282930313233343536
  1. package mistral
  2. import (
  3. "one-api/dto"
  4. )
  5. func requestOpenAI2Mistral(request *dto.GeneralOpenAIRequest) *dto.GeneralOpenAIRequest {
  6. messages := make([]dto.Message, 0, len(request.Messages))
  7. for _, message := range request.Messages {
  8. mediaMessages := message.ParseContent()
  9. for j, mediaMessage := range mediaMessages {
  10. if mediaMessage.Type == dto.ContentTypeImageURL {
  11. imageUrl := mediaMessage.GetImageMedia()
  12. mediaMessage.ImageUrl = imageUrl.Url
  13. mediaMessages[j] = mediaMessage
  14. }
  15. }
  16. message.SetMediaContent(mediaMessages)
  17. messages = append(messages, dto.Message{
  18. Role: message.Role,
  19. Content: message.Content,
  20. ToolCalls: message.ToolCalls,
  21. ToolCallId: message.ToolCallId,
  22. })
  23. }
  24. return &dto.GeneralOpenAIRequest{
  25. Model: request.Model,
  26. Stream: request.Stream,
  27. Messages: messages,
  28. Temperature: request.Temperature,
  29. TopP: request.TopP,
  30. MaxTokens: request.MaxTokens,
  31. Tools: request.Tools,
  32. ToolChoice: request.ToolChoice,
  33. }
  34. }