|
|
|
@ -216,13 +216,11 @@ func TestExecuteWithMessages(t *testing.T) { |
|
|
|
{"response", `[INST] {{ if .System }}{{ .System }} |
|
|
|
|
|
|
|
{{ end }}{{ .Prompt }}[/INST] {{ .Response }}`}, |
|
|
|
{"messages", `{{- $system := contents .Messages "system" -}} |
|
|
|
{{- range $index, $_ := .Messages }} |
|
|
|
{{- if eq .Role "user" }}[INST] {{ if $system }}{{ $system }} |
|
|
|
{{- $system = "" }} |
|
|
|
{"messages", `[INST] {{ if .System }}{{ .System }} |
|
|
|
|
|
|
|
{{ end }}{{ .Content }}[/INST] {{ else if eq .Role "assistant" }}{{ .Content }} |
|
|
|
{{- end }} |
|
|
|
{{ end }} |
|
|
|
{{- range .Messages }} |
|
|
|
{{- if eq .Role "user" }}{{ .Content }}[/INST] {{ else if eq .Role "assistant" }}{{ .Content }}[INST] {{ end }} |
|
|
|
{{- end }}`}, |
|
|
|
}, |
|
|
|
Values{ |
|
|
|
@ -243,13 +241,11 @@ func TestExecuteWithMessages(t *testing.T) { |
|
|
|
{"response", `[INST] {{ if .System }}{{ .System }} |
|
|
|
|
|
|
|
{{ end }}{{ .Prompt }}[/INST] {{ .Response }}`}, |
|
|
|
{"messages", `{{- $system := contents .Messages "system" -}} |
|
|
|
{{- range $index, $_ := .Messages }} |
|
|
|
{{- if eq .Role "user" }}[INST] {{ if $system }}{{ $system }} |
|
|
|
{{- $system = "" }} |
|
|
|
{"messages", `[INST] {{ if .System }}{{ .System }} |
|
|
|
|
|
|
|
{{ end }}{{ .Content }}[/INST] {{ else if eq .Role "assistant" }}{{ .Content }} |
|
|
|
{{- end }} |
|
|
|
{{ end }} |
|
|
|
{{- range .Messages }} |
|
|
|
{{- if eq .Role "user" }}{{ .Content }}[/INST] {{ else if eq .Role "assistant" }}{{ .Content }}[INST] {{ end }} |
|
|
|
{{- end }}`}, |
|
|
|
}, |
|
|
|
Values{ |
|
|
|
@ -363,36 +359,3 @@ Answer: `, |
|
|
|
}) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
func TestFuncs(t *testing.T) { |
|
|
|
t.Run("contents", func(t *testing.T) { |
|
|
|
cases := map[string]string{ |
|
|
|
"": "A\n\nB\n\nC\n\nD\n\nE\n\nF", |
|
|
|
"system": "A\n\nF", |
|
|
|
"user": "B\n\nE", |
|
|
|
"assistant": "C\n\nD", |
|
|
|
} |
|
|
|
|
|
|
|
s := []*api.Message{ |
|
|
|
{Role: "system", Content: "A"}, |
|
|
|
{Role: "user", Content: "B"}, |
|
|
|
{Role: "assistant", Content: "C"}, |
|
|
|
{Role: "assistant", Content: "D"}, |
|
|
|
{Role: "user", Content: "E"}, |
|
|
|
{Role: "system", Content: "F"}, |
|
|
|
} |
|
|
|
|
|
|
|
fn, ok := funcs["contents"].(func([]*api.Message, ...string) string) |
|
|
|
if !ok { |
|
|
|
t.Fatal("contents is not a function") |
|
|
|
} |
|
|
|
|
|
|
|
for k, v := range cases { |
|
|
|
t.Run(k, func(t *testing.T) { |
|
|
|
if diff := cmp.Diff(fn(s, k), v); diff != "" { |
|
|
|
t.Errorf("mismatch (-got +want):\n%s", diff) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
|