Back to Docs
Go SDK
70 methods for Go backends. Full parity with TypeScript and Python SDKs.
go get github.com/evalguard/evalguard-go
Installation
terminal
go get github.com/evalguard/evalguard-go
Quick Start
main.go
package main
import (
"context"
"fmt"
"log"
"github.com/evalguard/evalguard-go"
)
func main() {
client, err := evalguard.NewClient("eg_live_your_key",
evalguard.WithBaseURL("https://evalguard.ai/api/v1"),
)
if err != nil {
log.Fatal(err)
}
// Run an evaluation
result, err := client.RunEval(context.Background(), &evalguard.RunEvalRequest{
DatasetID: "ds_abc123",
Model: "gpt-4o",
Metrics: []string{"accuracy", "relevance", "faithfulness"},
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("Score: %v\n", result.Metrics)
}Configuration
main.go
// Custom timeout
client, _ := evalguard.NewClient("eg_...",
evalguard.WithTimeout(60 * time.Second),
)
// Custom HTTP client (for proxies, mTLS, etc.)
client, _ := evalguard.NewClient("eg_...",
evalguard.WithHTTPClient(&http.Client{
Transport: customTransport,
}),
)All Methods (68)
Evaluations
- RunEval()
- GetEval()
- ListEvals()
- ListEvalRuns()
Security
- RunSecurityScan()
- GetSecurityGraders()
- GetSecurityEffectiveness()
- GetSecurityReport()
- CodeScan()
Shadow AI
- AnalyzeShadowAI()
AI-SPM
- GetAIPosture()
Smart Copilot
- AnalyzeCopilot()
Gateway
- GetGatewayHealth()
- GetGatewayStats()
Traces
- GetTraces()
- GetTrace()
- SearchTraces()
- CreateTrace()
- IngestOTLP()
Cost / FinOps
- GetCost()
- GetCostForecast()
- GetCostSavings()
- GetCostBudget()
- GetCostAnomalies()
- GetCostRecommendations()
Monitoring
- GetMonitoringAlerts()
- GetMonitoringDrift()
- GetMonitoringAnalytics()
- GetMonitoringSLA()
Compliance
- GetCompliance()
- CheckCompliance()
- GetComplianceGaps()
- GetEUAIAct()
- GetModelCards()
Prompts
- CreatePrompt()
- ListPrompts()
Datasets
- CreateDataset()
- ListDatasets()
Firewall & Guardrails
- ListFirewallRules()
- ListGuardrails()
- GenerateGuardrails()
Team & Org
- ListTeam()
- ListApiKeys()
- ListWebhooks()
- GetAuditLogs()
Other
- Ask()
- FormalVerify()
- GetLeaderboard()
- SubmitTicket()
- GetThreatIntelligence()
- GetAISBOM()
- GenerateAISBOM()
- GetSIEMConnectors()
- GetSettings()
- ListNotifications()
- ListTemplates()
- GetMarketplace()
- ListEvalSchedules()
- ListIncidents()
- GetDashboardStats()
- DetectDrift()
- SmartRoute()
- GetAutopilotConfig()
- ListPipelines()
- ListAnnotations()
- CreateAnnotation()
- Search()
- ListTickets()
Error Handling
errors.go
// Typed errors for precise handling
result, err := client.RunEval(ctx, req)
if err != nil {
var authErr *evalguard.AuthError
var rlErr *evalguard.RateLimitError
switch {
case errors.As(err, &authErr):
log.Fatal("Invalid API key:", authErr.Message)
case errors.As(err, &rlErr):
log.Printf("Rate limited, retry after %v", rlErr.RetryAfter)
time.Sleep(rlErr.RetryAfter)
default:
log.Fatal("API error:", err)
}
}Shadow AI Detection
shadow.go
result, err := client.AnalyzeShadowAI(ctx, &evalguard.ShadowAIRequest{
Input: "My SSN is 123-45-6789 and CC 4111-1111-1111-1111",
Provider: "openai",
Model: "gpt-4o",
})
// result.PIIDetails.Types = ["ssn", "creditCard"]
// result.Event.RiskScore = 25AI-SPM (Security Posture)
spm.go
posture, err := client.GetAIPosture(ctx, "project-id") // posture.Posture.OverallScore = 85 // posture.Models[0].Name = "gpt-4o" // posture.Models[0].Misconfigurations = [...] // posture.DataFlows[0].CrossBorder = true
Smart Copilot
copilot.go
analysis, err := client.AnalyzeCopilot(ctx, &evalguard.CopilotAnalyzeRequest{
Type: "security",
Model: "gpt-4o",
PassRate: 0.6,
Findings: []map[string]any{
{"type": "prompt-injection", "severity": "critical", "title": "Injection", "description": "...", "passed": false},
},
})
// analysis.Analysis["overallRisk"] = "critical"
// analysis.Analysis["immediateActions"] = [...]
// analysis.Analysis["complianceImpact"] = [{framework: "GDPR", status: "at-risk"}]