Compose appended request messages
This commit is contained in:
@@ -363,6 +363,7 @@ func TestOpenAICompatibleClientRequestMapping(t *testing.T) {
|
||||
run func(*testing.T)
|
||||
}{
|
||||
{name: "complete request and response mapping", run: checkCompleteRequestAndResponseMapping},
|
||||
{name: "canonical role and exact content", run: checkCanonicalRoleAndExactContentMapping},
|
||||
{name: "cache-controlled message", run: checkCacheControlledMessageMapping},
|
||||
{name: "empty cache-control TTL", run: checkEmptyCacheControlTTLOmission},
|
||||
{name: "session ID", run: checkSessionIDMapping},
|
||||
@@ -377,6 +378,34 @@ func TestOpenAICompatibleClientRequestMapping(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func checkCanonicalRoleAndExactContentMapping(t *testing.T) {
|
||||
provider := newRecordingProvider(t)
|
||||
client := newProviderClient(t, provider, OpenAICompatibleConfig{})
|
||||
const content = " exact content\nwith whitespace "
|
||||
_, err := client.Generate(context.Background(), domain.GenerateRequest{
|
||||
Prompt: domain.RenderedPrompt{Messages: []domain.RenderedMessage{{
|
||||
Role: domain.RoleDeveloper,
|
||||
Content: content,
|
||||
}}},
|
||||
Target: domain.ExecutionTarget{Model: "model"},
|
||||
})
|
||||
if err != nil {
|
||||
t.Fatalf("Generate() error = %v", err)
|
||||
}
|
||||
|
||||
var messages []struct {
|
||||
Role string `json:"role"`
|
||||
Content string `json:"content"`
|
||||
}
|
||||
request := provider.lastRequest(t)
|
||||
if !request.decodeField(t, "messages", &messages) || len(messages) != 1 {
|
||||
t.Fatalf("messages = %#v, want one message", messages)
|
||||
}
|
||||
if messages[0].Role != domain.RoleDeveloper || messages[0].Content != content {
|
||||
t.Fatalf("message = %#v, want role %q and exact content %q", messages[0], domain.RoleDeveloper, content)
|
||||
}
|
||||
}
|
||||
|
||||
func checkCompleteRequestAndResponseMapping(t *testing.T) {
|
||||
provider := newRecordingProvider(t)
|
||||
provider.respond(http.StatusOK, `{
|
||||
|
||||
Reference in New Issue
Block a user