diff --git a/relay/adaptor/anthropic/main.go b/relay/adaptor/anthropic/main.go index aa9e754f..a8de185c 100644 --- a/relay/adaptor/anthropic/main.go +++ b/relay/adaptor/anthropic/main.go @@ -4,6 +4,10 @@ import ( "bufio" "encoding/json" "fmt" + "io" + "net/http" + "strings" + "github.com/gin-gonic/gin" "github.com/songquanpeng/one-api/common" "github.com/songquanpeng/one-api/common/helper" @@ -11,9 +15,6 @@ import ( "github.com/songquanpeng/one-api/common/logger" "github.com/songquanpeng/one-api/relay/adaptor/openai" "github.com/songquanpeng/one-api/relay/model" - "io" - "net/http" - "strings" ) func stopReasonClaude2OpenAI(reason *string) string { @@ -176,10 +177,10 @@ func StreamHandler(c *gin.Context, resp *http.Response) (*model.ErrorWithStatusC if len(data) < 6 { continue } - if !strings.HasPrefix(data, "data: ") { + if !strings.HasPrefix(data, "data:") { continue } - data = strings.TrimPrefix(data, "data: ") + data = strings.TrimPrefix(data, "data:") dataChan <- data } stopChan <- true @@ -192,7 +193,7 @@ func StreamHandler(c *gin.Context, resp *http.Response) (*model.ErrorWithStatusC select { case data := <-dataChan: // some implementations may add \r at the end of data - data = strings.TrimSuffix(data, "\r") + data = strings.TrimSpace(data) var claudeResponse StreamResponse err := json.Unmarshal([]byte(data), &claudeResponse) if err != nil {