Amazon Bedrock
All about Amazon Bedrock.
package main
import (
"context"
"fmt"
"log"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/bedrockruntime"
"github.com/hupe1980/golc/model"
"github.com/hupe1980/golc/model/llm"
"github.com/hupe1980/golc/prompt"
)
func main() {
cfg, _ := config.LoadDefaultConfig(context.Background(), config.WithRegion("us-east-1"))
client := bedrockruntime.NewFromConfig(cfg)
bedrock, err := llm.NewBedrock(client, "amazon.titan-text-lite-v1", func(o *llm.BedrockOptions) {
o.ModelParams = map[string]any{ // optional
"temperature": 0.3,
}
})
if err != nil {
log.Fatal(err)
}
res, err := model.GeneratePrompt(context.Background(), bedrock, prompt.StringPromptValue("Hello ai!"))
if err != nil {
log.Fatal(err)
}
fmt.Println(res.Generations[0].Text)
}
Streaming
package main
import (
"context"
"log"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/bedrockruntime"
"github.com/hupe1980/golc/callback"
"github.com/hupe1980/golc/model"
"github.com/hupe1980/golc/model/llm"
"github.com/hupe1980/golc/prompt"
"github.com/hupe1980/golc/schema"
)
func main() {
cfg, _ := config.LoadDefaultConfig(context.Background(), config.WithRegion("us-east-1"))
client := bedrockruntime.NewFromConfig(cfg)
bedrock, err := llm.NewBedrock(client, "amazon.titan-text-lite-v1", func(o *llm.BedrockOptions) {
o.Callbacks = []schema.Callback{callback.NewStreamWriterHandler()}
o.Stream = true
})
if err != nil {
log.Fatal(err)
}
if _, err := model.GeneratePrompt(context.Background(), bedrock, prompt.StringPromptValue("Write me a song about sparkling water.")); err != nil {
log.Fatal(err)
}
}
A121 Support
package main
import (
"context"
"fmt"
"log"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/bedrockruntime"
"github.com/hupe1980/golc/model"
"github.com/hupe1980/golc/model/llm"
"github.com/hupe1980/golc/prompt"
)
func main() {
cfg, _ := config.LoadDefaultConfig(context.Background(), config.WithRegion("us-east-1"))
client := bedrockruntime.NewFromConfig(cfg)
bedrock, err := llm.NewBedrockAI21(client, func(o *llm.BedrockAI21Options) {
o.Temperature = 0.3
})
if err != nil {
log.Fatal(err)
}
res, err := model.GeneratePrompt(context.Background(), bedrock, prompt.StringPromptValue("Hello ai!"))
if err != nil {
log.Fatal(err)
}
fmt.Println(res.Generations[0].Text)
}
Amazon Support
package main
import (
"context"
"fmt"
"log"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/bedrockruntime"
"github.com/hupe1980/golc/model"
"github.com/hupe1980/golc/model/llm"
"github.com/hupe1980/golc/prompt"
)
func main() {
cfg, _ := config.LoadDefaultConfig(context.Background(), config.WithRegion("us-east-1"))
client := bedrockruntime.NewFromConfig(cfg)
bedrock, err := llm.NewBedrockAmazon(client, func(o *llm.BedrockAmazonOptions) {
o.Temperature = 0.3
})
if err != nil {
log.Fatal(err)
}
res, err := model.GeneratePrompt(context.Background(), bedrock, prompt.StringPromptValue("Hello ai!"))
if err != nil {
log.Fatal(err)
}
fmt.Println(res.Generations[0].Text)
}
Cohere Support
package main
import (
"context"
"fmt"
"log"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/bedrockruntime"
"github.com/hupe1980/golc/model"
"github.com/hupe1980/golc/model/llm"
"github.com/hupe1980/golc/prompt"
)
func main() {
cfg, _ := config.LoadDefaultConfig(context.Background(), config.WithRegion("us-east-1"))
client := bedrockruntime.NewFromConfig(cfg)
bedrock, err := llm.NewBedrockCohere(client, func(o *llm.BedrockCohereOptions) {
o.Temperature = 0.3
})
if err != nil {
log.Fatal(err)
}
res, err := model.GeneratePrompt(context.Background(), bedrock, prompt.StringPromptValue("Hello ai!"))
if err != nil {
log.Fatal(err)
}
fmt.Println(res.Generations[0].Text)
}
Anthropic Support
package main
import (
"context"
"fmt"
"log"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/bedrockruntime"
"github.com/hupe1980/golc/model"
"github.com/hupe1980/golc/model/llm"
"github.com/hupe1980/golc/prompt"
)
func main() {
cfg, _ := config.LoadDefaultConfig(context.Background(), config.WithRegion("us-east-1"))
client := bedrockruntime.NewFromConfig(cfg)
bedrock, err := llm.NewBedrockAnthropic(client, func(o *llm.BedrockAnthropicOptions) {
o.Temperature = 0.3
})
if err != nil {
log.Fatal(err)
}
res, err := model.GeneratePrompt(context.Background(), bedrock, prompt.StringPromptValue("Hello ai!"))
if err != nil {
log.Fatal(err)
}
fmt.Println(res.Generations[0].Text)
}
Meta Support
package main
import (
"context"
"fmt"
"log"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/bedrockruntime"
"github.com/hupe1980/golc/model"
"github.com/hupe1980/golc/model/llm"
"github.com/hupe1980/golc/prompt"
)
func main() {
cfg, _ := config.LoadDefaultConfig(context.Background(), config.WithRegion("us-east-1"))
client := bedrockruntime.NewFromConfig(cfg)
bedrock, err := llm.NewBedrockMeta(client, func(o *llm.BedrockMetaOptions) {
o.Temperature = 0.3
})
if err != nil {
log.Fatal(err)
}
res, err := model.GeneratePrompt(context.Background(), bedrock, prompt.StringPromptValue("Hello ai!"))
if err != nil {
log.Fatal(err)
}
fmt.Println(res.Generations[0].Text)
}
Mistral Support
package main
import (
"context"
"fmt"
"log"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/bedrockruntime"
"github.com/hupe1980/golc/model"
"github.com/hupe1980/golc/model/llm"
"github.com/hupe1980/golc/prompt"
)
func main() {
cfg, _ := config.LoadDefaultConfig(context.Background(), config.WithRegion("us-east-1"))
client := bedrockruntime.NewFromConfig(cfg)
bedrock, err := llm.NewBedrockMistral(client)
if err != nil {
log.Fatal(err)
}
res, err := model.GeneratePrompt(context.Background(), bedrock, prompt.StringPromptValue("Tell me a joke"))
if err != nil {
log.Fatal(err)
}
fmt.Println(res.Generations[0].Text)
}
Last modified March 29, 2024: Fix typo (8f22885)