package main import ( "context" "fmt" "log" "os" "github.com/ollama/ollama/api" ) func main() { if len(os.Args) <= 1 { log.Fatal("usage: ") } imgData, err := os.ReadFile(os.Args[1]) if err != nil { log.Fatal(err) } client, err := api.ClientFromEnvironment() if err != nil { log.Fatal(err) } req := &api.GenerateRequest{ Model: "llava", Prompt: "describe this image", Images: []api.ImageData{imgData}, } ctx := context.Background() respFunc := func(resp api.GenerateResponse) error { // In streaming mode, responses are partial so we call fmt.Print (and not // Println) in order to avoid spurious newlines being introduced. The // model will insert its own newlines if it wants. fmt.Print(resp.Response) return nil } err = client.Generate(ctx, req, respFunc) if err != nil { log.Fatal(err) } fmt.Println() }