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

feat: support claude stop_sequences

CalciumIon 1 год назад
Родитель
Сommit
c88f3741e6
1 измененных файлов с 13 добавлено и 0 удалено
  1. 13 0
      relay/channel/claude/relay-claude.go

+ 13 - 0
relay/channel/claude/relay-claude.go

@@ -72,6 +72,19 @@ func RequestOpenAI2ClaudeMessage(textRequest dto.GeneralOpenAIRequest) (*ClaudeR
 	if claudeRequest.MaxTokens == 0 {
 	if claudeRequest.MaxTokens == 0 {
 		claudeRequest.MaxTokens = 4096
 		claudeRequest.MaxTokens = 4096
 	}
 	}
+	if textRequest.Stop != nil {
+		// stop maybe string/array string, convert to array string
+		switch textRequest.Stop.(type) {
+		case string:
+			claudeRequest.StopSequences = []string{textRequest.Stop.(string)}
+		case []interface{}:
+			stopSequences := make([]string, 0)
+			for _, stop := range textRequest.Stop.([]interface{}) {
+				stopSequences = append(stopSequences, stop.(string))
+			}
+			claudeRequest.StopSequences = stopSequences
+		}
+	}
 	formatMessages := make([]dto.Message, 0)
 	formatMessages := make([]dto.Message, 0)
 	var lastMessage *dto.Message
 	var lastMessage *dto.Message
 	for i, message := range textRequest.Messages {
 	for i, message := range textRequest.Messages {