Spaces:
Runtime error
Runtime error
| 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") | |
| // Write user context to ensure acceptUnsetRatio is available | |
| 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) | |
| } | |