Nara Lens/Docs

Go SDK

Official Go SDK for Nara Lens.

Installation

Bash
go get github.com/naralens/naralens-go

Quick Start

Go
package main

import (
    "fmt"
    "os"

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

func main() {
    // Initialize the client
    client := naralens.NewClient(os.Getenv("NARA_API_KEY"))

    // Analyze an image
    result, err := client.Analyze(&naralens.AnalyzeRequest{
        Image:      "https://example.com/image.jpg",
        Perception: "detect:person,vehicle",
    })
    if err != nil {
        panic(err)
    }

    // Access results
    for _, obj := range result.Objects {
        fmt.Printf("%s: %.1f%%\n", obj.Label, obj.Confidence*100)
        fmt.Printf("  Bounding box: %v\n", obj.BBox)
    }
}

Client Options

Go
client := naralens.NewClient(
    os.Getenv("NARA_API_KEY"),
    naralens.WithTimeout(30 * time.Second),
    naralens.WithBaseURL("https://custom.api.com"),
    naralens.WithRetries(3),
)

Error Handling

Go
result, err := client.Analyze(req)
if err != nil {
    if apiErr, ok := err.(*naralens.APIError); ok {
        fmt.Printf("API Error: %s (status %d)\n",
            apiErr.Message, apiErr.StatusCode)
    } else {
        fmt.Printf("Error: %v\n", err)
    }
    return
}