feat: publish sanitized custom.97 source
This commit is contained in:
1022 files changed
+69903
-19207
No files matched your search
@@ -13,6 +13,7 @@ var ErrInvalidSample = errors.New("invalid probe answer")
|
||||
var ErrIncomplete = errors.New("probe response incomplete")
|
||||
|
||||
type ProbeResponse struct {
|
||||
FirstTokenMS *int64 `json:"-"`
|
||||
Text string `json:"-"`
|
||||
DeclaredModel string `json:"declared_model,omitempty"`
|
||||
InputTokens int64 `json:"input_tokens"`
|
||||
@@ -59,7 +60,7 @@ func completedResponse(response gjson.Result) (ProbeResponse, error) {
|
||||
|
||||
// Only a complete response is a sample. Partial deltas, tool calls and a
|
||||
// truncated stream cannot become a model verdict. Total bytes are bounded.
|
||||
func ReadResponse(reader io.Reader, contentType string) (ProbeResponse, error) {
|
||||
func ReadResponse(reader io.Reader, contentType string, onFirstText ...func()) (ProbeResponse, error) {
|
||||
limited := &io.LimitedReader{R: reader, N: 8 << 20}
|
||||
buffered := bufio.NewReader(limited)
|
||||
peek, _ := buffered.Peek(1)
|
||||
@@ -78,6 +79,7 @@ func ReadResponse(reader io.Reader, contentType string) (ProbeResponse, error) {
|
||||
var data strings.Builder
|
||||
var deltas strings.Builder
|
||||
refused := false
|
||||
firstText := false
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
if strings.HasPrefix(line, "data:") {
|
||||
@@ -104,6 +106,12 @@ func ReadResponse(reader io.Reader, contentType string) (ProbeResponse, error) {
|
||||
event := gjson.Parse(payload)
|
||||
typ := event.Get("type").String()
|
||||
if typ == "response.output_text.delta" {
|
||||
if !firstText && event.Get("delta").String() != "" {
|
||||
firstText = true
|
||||
for _, observe := range onFirstText {
|
||||
observe()
|
||||
}
|
||||
}
|
||||
deltas.WriteString(event.Get("delta").String())
|
||||
if deltas.Len() > 65536 {
|
||||
return ProbeResponse{}, ErrInvalidSample
|
||||
|
||||
Reference in new issue
Block a user