| | package controller |
| |
|
| | import ( |
| | "errors" |
| | "fmt" |
| |
|
| | "github.com/QuantumNous/new-api/middleware" |
| | "github.com/QuantumNous/new-api/model" |
| | relaycommon "github.com/QuantumNous/new-api/relay/common" |
| | "github.com/QuantumNous/new-api/types" |
| |
|
| | "github.com/gin-gonic/gin" |
| | ) |
| |
|
| | func Playground(c *gin.Context) { |
| | var newAPIError *types.NewAPIError |
| |
|
| | defer func() { |
| | if newAPIError != nil { |
| | c.JSON(newAPIError.StatusCode, gin.H{ |
| | "error": newAPIError.ToOpenAIError(), |
| | }) |
| | } |
| | }() |
| |
|
| | useAccessToken := c.GetBool("use_access_token") |
| | if useAccessToken { |
| | newAPIError = types.NewError(errors.New("暂不支持使用 access token"), types.ErrorCodeAccessDenied, types.ErrOptionWithSkipRetry()) |
| | return |
| | } |
| |
|
| | relayInfo, err := relaycommon.GenRelayInfo(c, types.RelayFormatOpenAI, nil, nil) |
| | if err != nil { |
| | newAPIError = types.NewError(err, types.ErrorCodeInvalidRequest, types.ErrOptionWithSkipRetry()) |
| | return |
| | } |
| |
|
| | userId := c.GetInt("id") |
| |
|
| | |
| | userCache, err := model.GetUserCache(userId) |
| | if err != nil { |
| | newAPIError = types.NewError(err, types.ErrorCodeQueryDataError, types.ErrOptionWithSkipRetry()) |
| | return |
| | } |
| | userCache.WriteContext(c) |
| |
|
| | tempToken := &model.Token{ |
| | UserId: userId, |
| | Name: fmt.Sprintf("playground-%s", relayInfo.UsingGroup), |
| | Group: relayInfo.UsingGroup, |
| | } |
| | _ = middleware.SetupContextForToken(c, tempToken) |
| |
|
| | Relay(c, types.RelayFormatOpenAI) |
| | } |
| |
|