fix: fix tool calls

This commit is contained in:
CaIon 2024-01-31 01:41:38 +08:00
parent 364d4f96c7
commit 6d0479632a
2 changed files with 46 additions and 43 deletions

View File

@ -145,9 +145,9 @@ func countTokenMessages(messages []Message, model string) (int, error) {
for _, message := range messages {
tokenNum += tokensPerMessage
tokenNum += getTokenNum(tokenEncoder, message.Role)
if len(message.Content) > 0 {
var arrayContent []MediaMessage
if err := json.Unmarshal(message.Content, &arrayContent); err != nil {
var stringContent string
if err := json.Unmarshal(message.Content, &stringContent); err != nil {
return 0, err
@ -190,6 +190,7 @@ func countTokenMessages(messages []Message, model string) (int, error) {
}
}
}
}
tokenNum += 3 // Every reply is primed with <|start|>assistant<|message|>
return tokenNum, nil
}

View File

@ -16,6 +16,8 @@ type Message struct {
Role string `json:"role"`
Content json.RawMessage `json:"content"`
Name *string `json:"name,omitempty"`
ToolCalls any `json:"tool_calls,omitempty"`
ToolCallId string `json:"tool_call_id,omitempty"`
}
type MediaMessage struct {