Skip to main content

Go SDK

The official Go SDK for QWED.

Installation

go get github.com/qwed-ai/qwed-go

Quick Start

package main

import (
    "context"
    "fmt"
    "github.com/qwed-ai/qwed-go"
)

func main() {
    client := qwed.NewClient("qwed_your_key")
    
    result, err := client.Verify(context.Background(), "Is 2+2=4?")
    if err != nil {
        panic(err)
    }
    
    fmt.Println(result.Verified)  // true
    fmt.Println(result.Status)    // "VERIFIED"
}

Methods

Verify

result, err := client.Verify(ctx, "2+2=4")

VerifyMath

result, err := client.VerifyMath(ctx, "x**2 + 2*x + 1 = (x+1)**2")
fmt.Println(result.Verified)  // true

VerifyLogic

result, err := client.VerifyLogic(ctx, "(AND (GT x 5) (LT y 10))")
fmt.Println(result.Model)  // map[x:6 y:9]

VerifyCode

result, err := client.VerifyCode(ctx, code, "python")
for _, vuln := range result.Vulnerabilities {
    fmt.Printf("%s: %s\n", vuln.Severity, vuln.Message)
}

VerifySQL

result, err := client.VerifySQL(ctx, query, schema)

VerifyBatch

items := []qwed.BatchItem{
    {Query: "2+2=4", Type: qwed.TypeMath},
    {Query: "3*3=9", Type: qwed.TypeMath},
}
results, err := client.VerifyBatch(ctx, items)
fmt.Println(results.Summary.SuccessRate)

Types

type VerificationResult struct {
    Status          string
    Verified        bool
    Engine          string
    Result          map[string]interface{}
    Vulnerabilities []Vulnerability
}

Error Handling

result, err := client.Verify(ctx, "test")
if err != nil {
    var qwedErr *qwed.Error
    if errors.As(err, &qwedErr) {
        fmt.Println(qwedErr.Code)
        fmt.Println(qwedErr.Message)
    }
}