Recover from invalid model output
You let Ax validate fields and retry with specific correction feedback. Your app can still distinguish generation errors, provider failures, and cancellation.
Unit example (nearest native match)
See the idea in context
answer := axllm.NewAx("question:string -> answer:string", nil)- Run the program normally
Most valid responses return through the usual typed path.
- Catch the specific failure
AxGenerateError identifies a generation or validation failure you can report deliberately.
- Preserve useful details
error.details gives logs and UI a concrete repair target.
Run itIn your own project
go get github.com/ax-llm/ax/packages/go
package main
import (
"context"
"fmt"
"os"
axllm "github.com/ax-llm/ax/packages/go"
)
func main() {
client := axllm.NewAI("openai", map[string]axllm.Value{"apiKey": os.Getenv("OPENAI_API_KEY")})
classify := axllm.NewAx("review:string -> sentiment:class \"positive, negative, neutral\"", nil)
result, err := classify.Forward(context.Background(), client, map[string]axllm.Value{
"review": "Useful and boring in the best way."
}, nil)
if err != nil {
panic(err)
}
fmt.Println("sentiment:", result.(map[string]axllm.Value)["sentiment"])
}Set OPENAI_APIKEY in your environment before running provider-backed code.
From a clone of the ax repo:
npm run example -- go src/examples/go/generation/basic_generation.goActive practice
Answer 2 in a row to learn this · attempt 1