Warning
This library is super new and may change a lot.
A Go implementation of Vercel's AI SDK Data Stream Protocol.
- Supports OpenAI, Google, and Anthropic (with Bedrock support)
- Examples for integrating
useChat - Chain tool usage in Go, just like
maxSteps
// frontend.tsx
const { messages } = useChat({
// Points to our Go backend!
api: "/api/chat",
})// backend.go
// Accept the POST request...
var req *aisdk.Chat
messages, err := aisdk.MessagesToOpenAI(req.Messages)
if err != nil {
http.Error(w, err.Error(), http.StatusInternalServerError)
return
}
// Convert the http.ResponseWriter to a Data Stream.
dataStream := aisdk.NewDataStream(w)
stream := openaiClient.Chat.Completions.NewStreaming(...)
aisdk.PipeOpenAIToDataStream(stream, dataStream)Run tests with go test. Start the useChat demo with:
# any or all of these can be set
export OPENAI_API_KEY=<api-key>
export ANTHROPIC_API_KEY=<api-key>
export GOOGLE_API_KEY=<api-key>
cd demo
bun i
bun dev