bedrock_test.go

 1package providertests
 2
 3import (
 4	"net/http"
 5	"testing"
 6
 7	"charm.land/fantasy"
 8	"charm.land/fantasy/bedrock"
 9	"gopkg.in/dnaeon/go-vcr.v4/pkg/recorder"
10)
11
12func TestBedrockCommon(t *testing.T) {
13	testCommon(t, []builderPair{
14		{"bedrock-anthropic-claude-3-sonnet", builderBedrockClaude3Sonnet, nil},
15		{"bedrock-anthropic-claude-3-opus", builderBedrockClaude3Opus, nil},
16		{"bedrock-anthropic-claude-3-haiku", builderBedrockClaude3Haiku, nil},
17	})
18}
19
20func builderBedrockClaude3Sonnet(r *recorder.Recorder) (fantasy.LanguageModel, error) {
21	provider := bedrock.New(
22		bedrock.WithHTTPClient(&http.Client{Transport: r}),
23		bedrock.WithSkipAuth(!r.IsRecording()),
24	)
25	return provider.LanguageModel("us.anthropic.claude-3-sonnet-20240229-v1:0")
26}
27
28func builderBedrockClaude3Opus(r *recorder.Recorder) (fantasy.LanguageModel, error) {
29	provider := bedrock.New(
30		bedrock.WithHTTPClient(&http.Client{Transport: r}),
31		bedrock.WithSkipAuth(!r.IsRecording()),
32	)
33	return provider.LanguageModel("us.anthropic.claude-3-opus-20240229-v1:0")
34}
35
36func builderBedrockClaude3Haiku(r *recorder.Recorder) (fantasy.LanguageModel, error) {
37	provider := bedrock.New(
38		bedrock.WithHTTPClient(&http.Client{Transport: r}),
39		bedrock.WithSkipAuth(!r.IsRecording()),
40	)
41	return provider.LanguageModel("us.anthropic.claude-3-haiku-20240307-v1:0")
42}