This Go package provides a straightforward and idiomatic way to interact with the Anthropic API. It supports creating and sending message requests to generate responses using the Claude-3 model. This document will guide you through the installation process and basic usage of the package.
To use this package, first ensure you have Go installed on your machine. You can download and install Go from golang.org.
Once Go is installed, you can add this package to your project by running:
go get -u github.com/sky-dtu/go-anthropic
To use the package, you need to provide your Anthropic API key. You can obtain an API key by signing up on the Anthropic website. Once you have an API key, you can set it in your environment variables:
First, import the package and create a new client instance. If you don't specify a model, the default claude-3-opus-20240229
model will be used.
package main
import (
"github.com/sky-dtu/go-anthropic"
"log"
)
func main() {
// create a new client with your API key
// and model [default: claude-3-opus-20240229]
client, err := anthropic.NewClient("your_api_key_here", "")
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
}
To send a completion request and receive a response, use the CreateCompletionRequest function. Ensure you pass a context to manage request cancellation and timeouts.
import (
"context"
"github.com/sky-dtu/anthropic"
)
func main() {
// Assume client has been initialized as shown above
// Create a completion request
request := anthropic.ChatCompletionRequest{
Messages: []anthropic.ChatCompletionMessage{
{
Role: anthropic.UserRole,
Content: "Hello, how are you?",
},
},
Model: client.Model,
MaxTokens: 150,
}
// Send the completion request
response, err := client.CreateChatCompletion(context.Background(), request)
if err != nil {
log.Fatalf("Failed to send completion request: %v", err)
}
log.Printf("Response: %+v", response)
}
The package utilizes the errors package to provide detailed error messages. Always check for errors after making API calls.
Here is a full example that demonstrates how to create a client, send a completion request, and handle the response:
package main
import (
"context"
"github.com/sky-dtu/go-anthropic"
"log"
)
func main() {
// Create a new client
client, err := anthropic.NewClient("your_api_key_here", "")
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
// Create completion request
request := anthropic.CreateCompletionRequest{
Messages: []anthropic.ChatCompletionMessage{
{
Role: anthropic.UserRole,
Content: "Hello, how are you?",
},
},
Model: client.Model,
MaxTokens: 150,
}
// Create the completion request
response, err := client.CreateCompletionRequest(context.Background(), request)
if err != nil {
log.Fatalf("Failed to send completion request: %v", err)
}
log.Printf("Response: %+v", response)
}
Contributions are welcome! Please feel free to submit pull requests, report issues, or suggest improvements via the GitHub repository.
This package is released under the MIT License. See the LICENSE file for more information.