Go SDK

Veriafy SDK for Go applications

Installation

go get github.com/veriafy/veriafy-go

Quick Start

package main

import (
    "fmt"
    "log"

    "github.com/veriafy/veriafy-go"
)

func main() {
    // Initialize client
    client, err := veriafy.NewClient(veriafy.Config{
        APIKey: "sk-xxxxx", // optional for local mode
    })
    if err != nil {
        log.Fatal(err)
    }

    // Classify a file
    result, err := client.Classify(veriafy.ClassifyOptions{
        File:  "document.pdf",
        Model: "veriafy/fraud-detection",
    })
    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("Vector ID: %s\n", result.VectorID)
    fmt.Printf("Action: %s\n", result.Action)
    fmt.Printf("Confidence: %.2f\n", result.Confidence)
}

API Reference

Types

type Config struct {
    APIKey string
    Local  bool // default: true
    GPU    bool // default: false
}

type ClassifyOptions struct {
    File      string
    Model     string
    Threshold float64 // default: 0.5
}

type ClassificationResult struct {
    VectorID        string
    FileType        string
    Categories      map[string]float64
    Confidence      float64
    Action          string // "allow", "flag", "block"
    ProcessingTimeMs float64
}

type VeriafyVector struct {
    ID         string
    Version    string
    FileType   string
    Components VectorComponents
}

Batch Processing

// Process multiple files concurrently
files := []string{"doc1.pdf", "doc2.pdf", "doc3.pdf"}

results, err := client.ClassifyBatch(veriafy.BatchOptions{
    Files:     files,
    Model:     "veriafy/fraud-detection",
    BatchSize: 32,
    Workers:   4,
})
if err != nil {
    log.Fatal(err)
}

for _, result := range results {
    if result.Action == "block" {
        fmt.Printf("BLOCKED: %s (confidence: %.2f)\n",
            result.File, result.Confidence)
    }
}

HTTP Server Example

package main

import (
    "encoding/json"
    "net/http"

    "github.com/veriafy/veriafy-go"
)

var client *veriafy.Client

func init() {
    var err error
    client, err = veriafy.NewClient(veriafy.Config{})
    if err != nil {
        panic(err)
    }
}

func moderateHandler(w http.ResponseWriter, r *http.Request) {
    file, _, err := r.FormFile("file")
    if err != nil {
        http.Error(w, err.Error(), http.StatusBadRequest)
        return
    }
    defer file.Close()

    result, err := client.ClassifyReader(file, veriafy.ClassifyOptions{
        Model: "veriafy/nsfw-classifier",
    })
    if err != nil {
        http.Error(w, err.Error(), http.StatusInternalServerError)
        return
    }

    json.NewEncoder(w).Encode(result)
}

func main() {
    http.HandleFunc("/api/moderate", moderateHandler)
    http.ListenAndServe(":8080", nil)
}

Next Steps

Veriafy - Universal File Classification Platform