From 2435a40a8bc5be71472530def17582ec39eddb16 Mon Sep 17 00:00:00 2001 From: linweiyuan Date: Wed, 21 Jun 2023 23:23:45 +0800 Subject: [PATCH] change back to gen arkose token online to fix 403 (#175) --- api/chatgpt/api.go | 16 +++++++++++++++- api/chatgpt/constant.go | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/api/chatgpt/api.go b/api/chatgpt/api.go index 08d4a87d3..6e600952d 100644 --- a/api/chatgpt/api.go +++ b/api/chatgpt/api.go @@ -109,7 +109,21 @@ func CreateConversation(c *gin.Context) { } if request.Model == gpt4Model || request.Model == gpt4BrowsingModel || request.Model == gpt4PluginsModel { - request.ArkoseToken = fmt.Sprintf(arkoseTokenTemplate, api.GenerateRandomString(17), api.GenerateRandomString(10), gpt4ArkoseTokenPublicKey, api.GenerateRandomNumber()) + formParams := fmt.Sprintf( + "public_key=%s", + gpt4ArkoseTokenPublicKey, + ) + req, _ := http.NewRequest(http.MethodPost, gpt4TokenUrl, strings.NewReader(formParams)) + req.Header.Set("Content-Type", api.ContentType) + resp, err := api.Client.Do(req) + if err != nil { + c.AbortWithStatusJSON(http.StatusInternalServerError, api.ReturnMessage(err.Error())) + return + } + + responseMap := make(map[string]string) + json.NewDecoder(resp.Body).Decode(&responseMap) + request.ArkoseToken = responseMap["token"] } resp, done := sendConversationRequest(c, request) diff --git a/api/chatgpt/constant.go b/api/chatgpt/constant.go index 68893e3be..6644879cf 100644 --- a/api/chatgpt/constant.go +++ b/api/chatgpt/constant.go @@ -14,7 +14,7 @@ const ( gpt4BrowsingModel = "gpt-4-browsing" gpt4PluginsModel = "gpt-4-plugins" gpt4ArkoseTokenPublicKey = "35536E1E-65B4-4D96-9D97-6ADB7EFF8147" - arkoseTokenTemplate = `%s.%s|r=us-east-1|meta=3|meta_width=300|metabgclr=transparent|metaiconclr=%%23555555|guitextcolor=%%23000000|pk=%s|at=40|rid=%d|ag=101|cdn_url=https%%3A%%2F%%2Ftcr9i.chat.openai.com%%2Fcdn%%2Ffc|lurl=https%%3A%%2F%%2Faudio-us-east-1.arkoselabs.com|surl=https%%3A%%2F%%2Ftcr9i.chat.openai.com|smurl=https%%3A%%2F%%2Ftcr9i.chat.openai.com%%2Fcdn%%2Ffc%%2Fassets%%2Fstyle-manager` + gpt4TokenUrl = "https://tcr9i.chat.openai.com/fc/gt2/public_key/" + gpt4ArkoseTokenPublicKey actionContinue = "continue" responseTypeMaxTokens = "max_tokens"