Skip to content

Commit 4dd8c2e

Browse files
committed
Improve save
Signed-off-by: David Gageot <david.gageot@docker.com>
1 parent fded506 commit 4dd8c2e

2 files changed

Lines changed: 33 additions & 28 deletions

File tree

pkg/evaluation/evaluation.go

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package evaluation
33
import (
44
"context"
55
"encoding/json"
6-
"fmt"
76
"os"
87
"path/filepath"
98
"strings"
@@ -170,30 +169,3 @@ func toolTrajectoryScore(expectedToolMessages, actualToolMessages []session.Mess
170169

171170
return score / float64(len(expectedToolMessages))
172171
}
173-
174-
func Save(sess *session.Session) (string, error) {
175-
if err := os.MkdirAll("evals", 0o755); err != nil {
176-
return "", err
177-
}
178-
179-
fileName := sess.ID + ".json"
180-
if _, err := os.Stat("evals/" + fileName); err == nil {
181-
number := 1
182-
for {
183-
fileName = fmt.Sprintf("%s_%d.json", sess.ID, number)
184-
if _, err := os.Stat("evals/" + fileName); err != nil {
185-
break
186-
}
187-
number++
188-
}
189-
}
190-
191-
evalFile := filepath.Join("evals", fileName)
192-
file, err := os.Create(evalFile)
193-
if err != nil {
194-
return "", err
195-
}
196-
defer file.Close()
197-
198-
return evalFile, json.NewEncoder(file).Encode(sess)
199-
}

pkg/evaluation/save.go

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package evaluation
2+
3+
import (
4+
"encoding/json"
5+
"fmt"
6+
"os"
7+
"path/filepath"
8+
9+
"github.com/docker/cagent/pkg/session"
10+
)
11+
12+
func Save(sess *session.Session) (string, error) {
13+
if err := os.MkdirAll("evals", 0o755); err != nil {
14+
return "", err
15+
}
16+
17+
evalFile := filepath.Join("evals", fmt.Sprintf("%s.json", sess.ID))
18+
for number := 1; ; number++ {
19+
if _, err := os.Stat(evalFile); err != nil {
20+
break
21+
}
22+
23+
evalFile = filepath.Join("evals", fmt.Sprintf("%s_%d.json", sess.ID, number))
24+
}
25+
26+
file, err := os.Create(evalFile)
27+
if err != nil {
28+
return "", err
29+
}
30+
defer file.Close()
31+
32+
return evalFile, json.NewEncoder(file).Encode(sess)
33+
}

0 commit comments

Comments
 (0)