| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 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)
- }
|