relay-perplexity.go 1.1 KB

1234567891011121314151617181920212223242526272829303132
  1. package perplexity
  2. import "github.com/QuantumNous/new-api/dto"
  3. func requestOpenAI2Perplexity(request dto.GeneralOpenAIRequest) *dto.GeneralOpenAIRequest {
  4. messages := make([]dto.Message, 0, len(request.Messages))
  5. for _, message := range request.Messages {
  6. messages = append(messages, dto.Message{
  7. Role: message.Role,
  8. Content: message.Content,
  9. })
  10. }
  11. req := &dto.GeneralOpenAIRequest{
  12. Model: request.Model,
  13. Stream: request.Stream,
  14. Messages: messages,
  15. Temperature: request.Temperature,
  16. TopP: request.TopP,
  17. FrequencyPenalty: request.FrequencyPenalty,
  18. PresencePenalty: request.PresencePenalty,
  19. SearchDomainFilter: request.SearchDomainFilter,
  20. SearchRecencyFilter: request.SearchRecencyFilter,
  21. ReturnImages: request.ReturnImages,
  22. ReturnRelatedQuestions: request.ReturnRelatedQuestions,
  23. SearchMode: request.SearchMode,
  24. }
  25. if request.MaxTokens != nil || request.MaxCompletionTokens != nil {
  26. maxTokens := request.GetMaxTokens()
  27. req.MaxTokens = &maxTokens
  28. }
  29. return req
  30. }