2026-06-11 20:01:48 +02:00

52 lines
1017 B
Go

package main
import (
"context"
"fmt"
"log"
"os"
"time"
gollama "gitea.neitzel.de/konrad/go-ollama"
)
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Minute)
defer cancel()
client, err := gollama.FromEnv()
if err != nil {
log.Fatalf("connect: %v", err)
}
if err := client.Ping(ctx); err != nil {
log.Fatalf("ping: %v", err)
}
names, err := client.ModelNames(ctx)
if err != nil {
log.Fatalf("list models: %v", err)
}
fmt.Println("models:", names)
model := "llama3.2"
if len(os.Args) > 1 {
model = os.Args[1]
}
reply, err := client.Complete(ctx, "Say hi in one sentence.", gollama.WithModel(model))
if err != nil {
log.Fatalf("complete: %v", err)
}
fmt.Println("reply:", reply.Text)
session, err := client.NewSession(model, gollama.WithSessionSystem("Be brief."))
if err != nil {
log.Fatalf("session: %v", err)
}
r, err := session.Send(ctx, "What is Go?")
if err != nil {
log.Fatalf("chat: %v", err)
}
fmt.Println("session:", r.Text)
}