Просмотр исходного кода

fix: claude流模式缺失role

CaIon 1 год назад
Родитель
Сommit
7d2d525051
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      relay/channel/claude/relay-claude.go

+ 3 - 1
relay/channel/claude/relay-claude.go

@@ -79,7 +79,7 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*ClaudeR
 		//	}
 		//}
 		if message.Role == "" {
-			message.Role = "user"
+			textRequest.Messages[i].Role = "user"
 		}
 		fmtMessage := dto.Message{
 			Role:    message.Role,
@@ -172,6 +172,7 @@ func StreamResponseClaude2OpenAI(reqMode int, claudeResponse *ClaudeResponse) (*
 	var choice dto.ChatCompletionsStreamResponseChoice
 	if reqMode == RequestModeCompletion {
 		choice.Delta.Content = claudeResponse.Completion
+		choice.Delta.Role = "assistant"
 		finishReason := stopReasonClaude2OpenAI(claudeResponse.StopReason)
 		if finishReason != "null" {
 			choice.FinishReason = &finishReason
@@ -184,6 +185,7 @@ func StreamResponseClaude2OpenAI(reqMode int, claudeResponse *ClaudeResponse) (*
 		} else if claudeResponse.Type == "content_block_delta" {
 			choice.Index = claudeResponse.Index
 			choice.Delta.Content = claudeResponse.Delta.Text
+			choice.Delta.Role = "assistant"
 		} else if claudeResponse.Type == "message_delta" {
 			finishReason := stopReasonClaude2OpenAI(*claudeResponse.Delta.StopReason)
 			if finishReason != "null" {