1
0

memory fuck up

This commit is contained in:
Antonio 2023-06-12 22:59:40 +08:00
parent 3b534349cd
commit 7f6be5660b
3 changed files with 13 additions and 8 deletions

View File

@ -1,17 +1,16 @@
package chatgpt package chatgpt
import ( import (
"freechatgpt/typings"
chatgpt_types "freechatgpt/typings/chatgpt" chatgpt_types "freechatgpt/typings/chatgpt"
official_types "freechatgpt/typings/official" official_types "freechatgpt/typings/official"
"strings" "strings"
) )
var Previous_text string func ConvertToString(chatgpt_response *chatgpt_types.ChatGPTResponse, previous_text *typings.StringStruct) string {
translated_response := official_types.NewChatCompletionChunk(strings.ReplaceAll(chatgpt_response.Message.Content.Parts[0], *&previous_text.Text, ""))
func ConvertToString(chatgpt_response *chatgpt_types.ChatGPTResponse) string {
translated_response := official_types.NewChatCompletionChunk(strings.ReplaceAll(chatgpt_response.Message.Content.Parts[0], Previous_text, ""))
translated_response.Choices[0].Delta.Role = chatgpt_response.Message.Author.Role translated_response.Choices[0].Delta.Role = chatgpt_response.Message.Author.Role
Previous_text = chatgpt_response.Message.Content.Parts[0] previous_text.Text = chatgpt_response.Message.Content.Parts[0]
return "data: " + translated_response.String() + "\n\n" return "data: " + translated_response.String() + "\n\n"
} }

View File

@ -4,6 +4,7 @@ import (
"bufio" "bufio"
"bytes" "bytes"
"encoding/json" "encoding/json"
"freechatgpt/typings"
chatgpt_types "freechatgpt/typings/chatgpt" chatgpt_types "freechatgpt/typings/chatgpt"
"io" "io"
"math/rand" "math/rand"
@ -155,6 +156,7 @@ func Handler(c *gin.Context, response *http.Response, token string, translated_r
c.Header("Content-Type", "application/json") c.Header("Content-Type", "application/json")
} }
var finish_reason string var finish_reason string
var previous_text typings.StringStruct
var original_response chatgpt_types.ChatGPTResponse var original_response chatgpt_types.ChatGPTResponse
counter := 0 counter := 0
for { for {
@ -191,7 +193,7 @@ func Handler(c *gin.Context, response *http.Response, token string, translated_r
counter++ counter++
continue continue
} }
response_string := chatgpt_response_converter.ConvertToString(&original_response) response_string := chatgpt_response_converter.ConvertToString(&original_response, &previous_text)
if stream { if stream {
_, err = c.Writer.WriteString(response_string) _, err = c.Writer.WriteString(response_string)
if err != nil { if err != nil {
@ -216,9 +218,9 @@ func Handler(c *gin.Context, response *http.Response, token string, translated_r
} }
} }
if !max_tokens { if !max_tokens {
return chatgpt_response_converter.Previous_text, nil return previous_text.Text, nil
} }
return chatgpt_response_converter.Previous_text, &ContinueInfo{ return previous_text.Text, &ContinueInfo{
ConversationID: original_response.ConversationID, ConversationID: original_response.ConversationID,
ParentID: original_response.Message.ID, ParentID: original_response.Message.ID,
} }

View File

@ -4,3 +4,7 @@ type GenericResponseLine struct {
Line string `json:"line"` Line string `json:"line"`
Error string `json:"error"` Error string `json:"error"`
} }
type StringStruct struct {
Text string `json:"text"`
}