How to Open a Conversation
Learn how to start using the SDK v2 with sdk.Open().
Basic Usage
import "github.com/AltairaLabs/PromptKit/sdk"
conv, err := sdk.Open("./app.pack.json", "assistant")
if err != nil {
log.Fatal(err)
}
defer conv.Close()
Parameters
Pack Path
First argument is the path to your pack file:
// Relative path
conv, _ := sdk.Open("./prompts/app.pack.json", "chat")
// Absolute path
conv, _ := sdk.Open("/etc/myapp/prompts.pack.json", "chat")
Prompt Name
Second argument is the prompt name from your pack:
// Pack contains: prompts.assistant, prompts.support, prompts.sales
conv, _ := sdk.Open("./app.pack.json", "assistant")
conv, _ := sdk.Open("./app.pack.json", "support")
conv, _ := sdk.Open("./app.pack.json", "sales")
Options
Override Model
conv, _ := sdk.Open("./app.pack.json", "chat",
sdk.WithModel("gpt-4o"),
)
Override Temperature
conv, _ := sdk.Open("./app.pack.json", "chat",
sdk.WithTemperature(0.9),
)
Multiple Options
conv, _ := sdk.Open("./app.pack.json", "chat",
sdk.WithModel("gpt-4o"),
sdk.WithTemperature(0.8),
sdk.WithMaxTokens(2000),
)
Environment Variables
The SDK uses these environment variables:
# Provider API keys (one required)
export OPENAI_API_KEY="sk-..."
export ANTHROPIC_API_KEY="sk-ant-..."
export GOOGLE_API_KEY="..."
# Optional: Default model
export PROMPTKIT_MODEL="gpt-4o-mini"
Error Handling
conv, err := sdk.Open("./app.pack.json", "chat")
if err != nil {
switch {
case errors.Is(err, sdk.ErrPackNotFound):
log.Fatal("Pack file not found")
case errors.Is(err, sdk.ErrPromptNotFound):
log.Fatal("Prompt not in pack")
case errors.Is(err, sdk.ErrInvalidPack):
log.Fatal("Pack file is invalid")
default:
log.Fatalf("Failed to open: %v", err)
}
}
defer conv.Close()
Always Close
Always close conversations when done:
conv, err := sdk.Open("./app.pack.json", "chat")
if err != nil {
log.Fatal(err)
}
defer conv.Close() // Important!
// Use conversation...
Complete Example
package main
import (
"context"
"fmt"
"log"
"github.com/AltairaLabs/PromptKit/sdk"
)
func main() {
// Open conversation
conv, err := sdk.Open("./app.pack.json", "assistant",
sdk.WithModel("gpt-4o"),
)
if err != nil {
log.Fatal(err)
}
defer conv.Close()
// Set variables
conv.SetVar("user_name", "Alice")
// Send message
ctx := context.Background()
resp, err := conv.Send(ctx, "Hello!")
if err != nil {
log.Fatal(err)
}
fmt.Println(resp.Text())
}
See Also
Was this page helpful?