🐛 fix: repair the error caused by incomplete parameters in third-party OpenAI interface (#135)

This commit is contained in:
Martial BE 2024-04-02 12:02:00 +08:00
parent 6b018b405a
commit a8891c0f72
No known key found for this signature in database
GPG Key ID: D06C32DF0EDB9084
2 changed files with 19 additions and 0 deletions

View File

@ -41,6 +41,17 @@ func (p *OpenAIProvider) CreateChatCompletion(request *types.ChatCompletionReque
return nil, errWithCode
}
if response.Usage == nil {
response.Usage = &types.Usage{
PromptTokens: p.Usage.PromptTokens,
CompletionTokens: 0,
TotalTokens: 0,
}
// 那么需要计算
response.Usage.CompletionTokens = common.CountTokenText(response.GetContent(), request.Model)
response.Usage.TotalTokens = response.Usage.PromptTokens + response.Usage.CompletionTokens
}
*p.Usage = *response.Usage
return &response.ChatCompletionResponse, nil

View File

@ -189,6 +189,14 @@ type ChatCompletionResponse struct {
PromptFilterResults any `json:"prompt_filter_results,omitempty"`
}
func (cc *ChatCompletionResponse) GetContent() string {
var content string
for _, choice := range cc.Choices {
content += choice.Message.StringContent()
}
return content
}
func (c ChatCompletionStreamChoice) ConvertOpenaiStream() []ChatCompletionStreamChoice {
var function *ChatCompletionToolCallsFunction
var functions []*ChatCompletionToolCallsFunction