| package perplexity |
|
|
| import ( |
| "errors" |
| "fmt" |
| "io" |
| "net/http" |
|
|
| "github.com/QuantumNous/new-api/dto" |
| "github.com/QuantumNous/new-api/relay/channel" |
| "github.com/QuantumNous/new-api/relay/channel/openai" |
| relaycommon "github.com/QuantumNous/new-api/relay/common" |
| "github.com/QuantumNous/new-api/types" |
|
|
| "github.com/gin-gonic/gin" |
| ) |
|
|
| type Adaptor struct { |
| } |
|
|
| func (a *Adaptor) ConvertGeminiRequest(*gin.Context, *relaycommon.RelayInfo, *dto.GeminiChatRequest) (any, error) { |
| |
| return nil, errors.New("not implemented") |
| } |
|
|
| func (a *Adaptor) ConvertClaudeRequest(c *gin.Context, info *relaycommon.RelayInfo, req *dto.ClaudeRequest) (any, error) { |
| adaptor := openai.Adaptor{} |
| return adaptor.ConvertClaudeRequest(c, info, req) |
| } |
|
|
| func (a *Adaptor) ConvertAudioRequest(c *gin.Context, info *relaycommon.RelayInfo, request dto.AudioRequest) (io.Reader, error) { |
| |
| return nil, errors.New("not implemented") |
| } |
|
|
| func (a *Adaptor) ConvertImageRequest(c *gin.Context, info *relaycommon.RelayInfo, request dto.ImageRequest) (any, error) { |
| |
| return nil, errors.New("not implemented") |
| } |
|
|
| func (a *Adaptor) Init(info *relaycommon.RelayInfo) { |
| } |
|
|
| func (a *Adaptor) GetRequestURL(info *relaycommon.RelayInfo) (string, error) { |
| return fmt.Sprintf("%s/chat/completions", info.ChannelBaseUrl), nil |
| } |
|
|
| func (a *Adaptor) SetupRequestHeader(c *gin.Context, req *http.Header, info *relaycommon.RelayInfo) error { |
| channel.SetupApiRequestHeader(info, c, req) |
| req.Set("Authorization", "Bearer "+info.ApiKey) |
| return nil |
| } |
|
|
| func (a *Adaptor) ConvertOpenAIRequest(c *gin.Context, info *relaycommon.RelayInfo, request *dto.GeneralOpenAIRequest) (any, error) { |
| if request == nil { |
| return nil, errors.New("request is nil") |
| } |
| if request.TopP >= 1 { |
| request.TopP = 0.99 |
| } |
| return requestOpenAI2Perplexity(*request), nil |
| } |
|
|
| func (a *Adaptor) ConvertRerankRequest(c *gin.Context, relayMode int, request dto.RerankRequest) (any, error) { |
| return nil, nil |
| } |
|
|
| func (a *Adaptor) ConvertEmbeddingRequest(c *gin.Context, info *relaycommon.RelayInfo, request dto.EmbeddingRequest) (any, error) { |
| |
| return nil, errors.New("not implemented") |
| } |
|
|
| func (a *Adaptor) ConvertOpenAIResponsesRequest(c *gin.Context, info *relaycommon.RelayInfo, request dto.OpenAIResponsesRequest) (any, error) { |
| |
| return nil, errors.New("not implemented") |
| } |
|
|
| func (a *Adaptor) DoRequest(c *gin.Context, info *relaycommon.RelayInfo, requestBody io.Reader) (any, error) { |
| return channel.DoApiRequest(a, c, info, requestBody) |
| } |
|
|
| func (a *Adaptor) DoResponse(c *gin.Context, resp *http.Response, info *relaycommon.RelayInfo) (usage any, err *types.NewAPIError) { |
| adaptor := openai.Adaptor{} |
| usage, err = adaptor.DoResponse(c, resp, info) |
| return |
| } |
|
|
| func (a *Adaptor) GetModelList() []string { |
| return ModelList |
| } |
|
|
| func (a *Adaptor) GetChannelName() string { |
| return ChannelName |
| } |
|
|