From 1153eb2595d1529927757dd6df4de71faaafde02 Mon Sep 17 00:00:00 2001 From: ZeroDeng Date: Fri, 21 Jul 2023 00:25:58 +0800 Subject: [PATCH] Add support for azure openai new version API (2023-07-01-preview) (#451) --- chat.go | 29 +++++++++++++++++++++++++++++ chat_stream.go | 18 ++++++++++-------- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/chat.go b/chat.go index 7a6438e7f..514aaee75 100644 --- a/chat.go +++ b/chat.go @@ -21,6 +21,35 @@ var ( ErrChatCompletionStreamNotSupported = errors.New("streaming is not supported with this method, please use CreateChatCompletionStream") //nolint:lll ) +type Hate struct { + Filtered bool `json:"filtered"` + Severity string `json:"severity,omitempty"` +} +type SelfHarm struct { + Filtered bool `json:"filtered"` + Severity string `json:"severity,omitempty"` +} +type Sexual struct { + Filtered bool `json:"filtered"` + Severity string `json:"severity,omitempty"` +} +type Violence struct { + Filtered bool `json:"filtered"` + Severity string `json:"severity,omitempty"` +} + +type ContentFilterResults struct { + Hate Hate `json:"hate,omitempty"` + SelfHarm SelfHarm `json:"self_harm,omitempty"` + Sexual Sexual `json:"sexual,omitempty"` + Violence Violence `json:"violence,omitempty"` +} + +type PromptAnnotation struct { + PromptIndex int `json:"prompt_index,omitempty"` + ContentFilterResults ContentFilterResults `json:"content_filter_results,omitempty"` +} + type ChatCompletionMessage struct { Role string `json:"role"` Content string `json:"content"` diff --git a/chat_stream.go b/chat_stream.go index 9f4e80cff..f1faa3964 100644 --- a/chat_stream.go +++ b/chat_stream.go @@ -12,17 +12,19 @@ type ChatCompletionStreamChoiceDelta struct { } type ChatCompletionStreamChoice struct { - Index int `json:"index"` - Delta ChatCompletionStreamChoiceDelta `json:"delta"` - FinishReason FinishReason `json:"finish_reason"` + Index int `json:"index"` + Delta ChatCompletionStreamChoiceDelta `json:"delta"` + FinishReason FinishReason `json:"finish_reason"` + ContentFilterResults ContentFilterResults `json:"content_filter_results,omitempty"` } type ChatCompletionStreamResponse struct { - ID string `json:"id"` - Object string `json:"object"` - Created int64 `json:"created"` - Model string `json:"model"` - Choices []ChatCompletionStreamChoice `json:"choices"` + ID string `json:"id"` + Object string `json:"object"` + Created int64 `json:"created"` + Model string `json:"model"` + Choices []ChatCompletionStreamChoice `json:"choices"` + PromptAnnotations []PromptAnnotation `json:"prompt_annotations,omitempty"` } // ChatCompletionStream