feat: sync deployed v1.0.0-rc.38-custom.67
This commit is contained in:
1 parent
d2e03ab7e8
commit
ffc8cf56db
154 files changed
+39540
-20509
No files matched your search
@@ -76,6 +76,8 @@ func ReadResponse(reader io.Reader, contentType string) (ProbeResponse, error) {
|
||||
scanner := bufio.NewScanner(buffered)
|
||||
scanner.Buffer(make([]byte, 4096), 2<<20)
|
||||
var data strings.Builder
|
||||
var deltas strings.Builder
|
||||
refused := false
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
if strings.HasPrefix(line, "data:") {
|
||||
@@ -101,6 +103,15 @@ func ReadResponse(reader io.Reader, contentType string) (ProbeResponse, error) {
|
||||
}
|
||||
event := gjson.Parse(payload)
|
||||
typ := event.Get("type").String()
|
||||
if typ == "response.output_text.delta" {
|
||||
deltas.WriteString(event.Get("delta").String())
|
||||
if deltas.Len() > 65536 {
|
||||
return ProbeResponse{}, ErrInvalidSample
|
||||
}
|
||||
}
|
||||
if typ == "response.refusal.delta" || typ == "response.refusal.done" {
|
||||
refused = true
|
||||
}
|
||||
if typ == "response.output_item.added" || typ == "response.output_item.done" {
|
||||
itemType := event.Get("item.type").String()
|
||||
if itemType != "message" && itemType != "reasoning" {
|
||||
@@ -108,7 +119,16 @@ func ReadResponse(reader io.Reader, contentType string) (ProbeResponse, error) {
|
||||
}
|
||||
}
|
||||
if typ == "response.completed" {
|
||||
return completedResponse(event.Get("response"))
|
||||
response := event.Get("response")
|
||||
answer, err := completedResponse(response)
|
||||
if refused {
|
||||
return answer, ErrInvalidSample
|
||||
}
|
||||
// Meow 4.5.4 accepts deltas only when completion omits output entirely.
|
||||
if err == nil && !response.Get("output").Exists() {
|
||||
answer.Text = deltas.String()
|
||||
}
|
||||
return answer, err
|
||||
}
|
||||
if typ == "response.failed" || typ == "response.incomplete" {
|
||||
return completedResponse(event.Get("response"))
|
||||
|
||||
Reference in new issue
Block a user