Go SDK
Official Go SDK for TalonAI - integrate AI security into your Go applications.
Installation
go get github.com/talonai/talonai-goQuick Start
package main
import (
"fmt"
"log"
"github.com/talonai/talonai-go"
)
func main() {
// Initialize client (uses TALONAI_API_KEY env var)
client, err := talonai.NewClient()
if err != nil {
log.Fatal(err)
}
// Analyze content
result, err := client.Analyze(talonai.AnalyzeRequest{
Content: "Hello, can you help me?",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("Risk Score: %d\n", result.RiskScore)
fmt.Printf("Is Safe: %t\n", result.IsSafe)
}HTTP Middleware
package main
import (
"net/http"
"github.com/talonai/talonai-go"
)
func TalonMiddleware(client *talonai.Client) func(http.Handler) http.Handler {
return func(next http.Handler) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
// Extract content from request
content := r.FormValue("message")
result, err := client.Analyze(talonai.AnalyzeRequest{
Content: content,
})
if err != nil || !result.IsSafe {
http.Error(w, "Request blocked", http.StatusForbidden)
return
}
next.ServeHTTP(w, r)
})
}
}Gin Framework
package main
import (
"github.com/gin-gonic/gin"
"github.com/talonai/talonai-go"
)
func main() {
client, _ := talonai.NewClient()
r := gin.Default()
r.POST("/chat", func(c *gin.Context) {
var req struct {
Message string `json:"message"`
}
c.BindJSON(&req)
result, _ := client.Analyze(talonai.AnalyzeRequest{
Content: req.Message,
})
if !result.IsSafe {
c.JSON(403, gin.H{"error": "blocked"})
return
}
// Process safe request...
c.JSON(200, gin.H{"status": "ok"})
})
r.Run()
}Configuration Options
client, err := talonai.NewClient(
talonai.WithAPIKey("your-api-key"),
talonai.WithBaseURL("https://api.talonai.io"),
talonai.WithTimeout(30 * time.Second),
talonai.WithRetries(3),
)