mirror of
https://github.com/linux-do/new-api.git
synced 2025-09-18 00:16:37 +08:00
fix: claude
This commit is contained in:
parent
a14fa1adb1
commit
e2edd5e7e5
@ -2,6 +2,7 @@ package common
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
"io"
|
"io"
|
||||||
@ -98,3 +99,13 @@ func LogQuota(quota int) string {
|
|||||||
return fmt.Sprintf("%d 点额度", quota)
|
return fmt.Sprintf("%d 点额度", quota)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// LogJson 仅供测试使用 only for test
|
||||||
|
func LogJson(ctx context.Context, msg string, obj any) {
|
||||||
|
jsonStr, err := json.Marshal(obj)
|
||||||
|
if err != nil {
|
||||||
|
LogError(ctx, fmt.Sprintf("json marshal failed: %s", err.Error()))
|
||||||
|
return
|
||||||
|
}
|
||||||
|
LogInfo(ctx, fmt.Sprintf("%s | %s", msg, string(jsonStr)))
|
||||||
|
}
|
||||||
|
@ -72,7 +72,7 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*ClaudeR
|
|||||||
}
|
}
|
||||||
formatMessages := make([]dto.Message, 0)
|
formatMessages := make([]dto.Message, 0)
|
||||||
var lastMessage *dto.Message
|
var lastMessage *dto.Message
|
||||||
for _, message := range textRequest.Messages {
|
for i, message := range textRequest.Messages {
|
||||||
//if message.Role == "system" {
|
//if message.Role == "system" {
|
||||||
// if i != 0 {
|
// if i != 0 {
|
||||||
// message.Role = "user"
|
// message.Role = "user"
|
||||||
@ -98,13 +98,24 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*ClaudeR
|
|||||||
fmtMessage.Content = content
|
fmtMessage.Content = content
|
||||||
}
|
}
|
||||||
formatMessages = append(formatMessages, fmtMessage)
|
formatMessages = append(formatMessages, fmtMessage)
|
||||||
lastMessage = &message
|
lastMessage = &textRequest.Messages[i]
|
||||||
}
|
}
|
||||||
|
|
||||||
claudeMessages := make([]ClaudeMessage, 0)
|
claudeMessages := make([]ClaudeMessage, 0)
|
||||||
for _, message := range formatMessages {
|
for _, message := range formatMessages {
|
||||||
if message.Role == "system" {
|
if message.Role == "system" {
|
||||||
|
if message.IsStringContent() {
|
||||||
claudeRequest.System = message.StringContent()
|
claudeRequest.System = message.StringContent()
|
||||||
|
} else {
|
||||||
|
contents := message.ParseContent()
|
||||||
|
content := ""
|
||||||
|
for _, ctx := range contents {
|
||||||
|
if ctx.Type == "text" {
|
||||||
|
content += ctx.Text
|
||||||
|
}
|
||||||
|
}
|
||||||
|
claudeRequest.System = content
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
claudeMessage := ClaudeMessage{
|
claudeMessage := ClaudeMessage{
|
||||||
Role: message.Role,
|
Role: message.Role,
|
||||||
@ -149,7 +160,6 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*ClaudeR
|
|||||||
}
|
}
|
||||||
claudeRequest.Prompt = ""
|
claudeRequest.Prompt = ""
|
||||||
claudeRequest.Messages = claudeMessages
|
claudeRequest.Messages = claudeMessages
|
||||||
|
|
||||||
return &claudeRequest, nil
|
return &claudeRequest, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user