Documentation
¶
Index ¶
- Variables
- type AgentInput
- type AgentOutput
- type AssistInput
- type AssistOutput
- type Flow
- func DefineAgentFlow(models []appai.Model) *Flow[AgentInput, AgentOutput]
- func DefineAgentFlowWithGenerator(generator generation.Generator) *Flow[AgentInput, AgentOutput]
- func DefineAssistFlow(models []appai.Model) *Flow[AssistInput, AssistOutput]
- func DefineAssistFlowWithGenerator(generator generation.Generator) *Flow[AssistInput, AssistOutput]
- func DefineMeetingNotesFlow(models []appai.Model) *Flow[MeetingNotesInput, MeetingNotesOutput]
- func DefineMeetingNotesFlowWithGenerator(generator generation.Generator) *Flow[MeetingNotesInput, MeetingNotesOutput]
- func DefineSummarizeFlow(models []appai.Model) *Flow[SummarizeInput, string]
- func DefineSummarizeFlowWithGenerator(generator generation.Generator) *Flow[SummarizeInput, string]
- func New[Input, Output any](run func(context.Context, Input) (Output, error)) *Flow[Input, Output]
- type MeetingNotesInput
- type MeetingNotesOutput
- type SummarizeInput
Constants ¶
This section is empty.
Variables ¶
var ErrNotConfigured = errors.New("AI flow is not configured")
Functions ¶
This section is empty.
Types ¶
type AgentInput ¶
type AgentInput struct {
Utterance string `json:"utterance"`
Locale string `json:"locale,omitempty"`
Selection string `json:"selection,omitempty"`
LastTranscription string `json:"lastTranscription,omitempty"`
SystemPrompt string `json:"systemPrompt,omitempty"`
}
AgentInput is the input for the agent flow.
type AgentOutput ¶
type AgentOutput struct {
Text string `json:"text"`
Action string `json:"action"` // "paste", "display", "silent"
}
AgentOutput is the output of the agent flow.
type AssistInput ¶
type AssistInput struct {
Utterance string `json:"utterance"` // The user's spoken text
Locale string `json:"locale,omitempty"` // "de", "en", etc.
Selection string `json:"selection,omitempty"` // Text currently selected in the active window
Context string `json:"context,omitempty"` // Additional context (last transcription, active app, etc.)
}
AssistInput is the input for the assist flow.
type AssistOutput ¶
type AssistOutput struct {
Text string `json:"text"` // Full LLM response text (always present)
SpeakText string `json:"speakText"` // TTS-optimized text (shorter, more natural than Text)
Action string `json:"action"` // "respond", "execute", "silent"
Locale string `json:"locale"` // Response language
}
AssistOutput is the Assist flow output (before TTS synthesis).
type Flow ¶ added in v0.70.2
type Flow[Input, Output any] struct { // contains filtered or unexported fields }
Flow is SpeechKit's small typed execution wrapper. It replaces the prior framework-specific flow type while preserving the public Run boundary used by Assist, summaries, and the Voice Agent.
func DefineAgentFlow ¶
func DefineAgentFlow(models []appai.Model) *Flow[AgentInput, AgentOutput]
DefineAgentFlow creates the agent flow.
func DefineAgentFlowWithGenerator ¶ added in v0.67.0
func DefineAgentFlowWithGenerator(generator generation.Generator) *Flow[AgentInput, AgentOutput]
func DefineAssistFlow ¶
func DefineAssistFlow(models []appai.Model) *Flow[AssistInput, AssistOutput]
DefineAssistFlow creates the assist flow for single-turn voice interactions. Optimized for speed: uses assist models, short responses, low temperature.
func DefineAssistFlowWithGenerator ¶ added in v0.67.0
func DefineAssistFlowWithGenerator(generator generation.Generator) *Flow[AssistInput, AssistOutput]
func DefineMeetingNotesFlow ¶ added in v0.59.0
func DefineMeetingNotesFlow(models []appai.Model) *Flow[MeetingNotesInput, MeetingNotesOutput]
DefineMeetingNotesFlow registers the meeting-notes flow.
It merges the transcript, the user's own notes and a template into structured notes where every bullet cites the transcript it came from. Models are tried in order; the first that produces usable output wins.
func DefineMeetingNotesFlowWithGenerator ¶ added in v0.67.0
func DefineMeetingNotesFlowWithGenerator(generator generation.Generator) *Flow[MeetingNotesInput, MeetingNotesOutput]
func DefineSummarizeFlow ¶
func DefineSummarizeFlow(models []appai.Model) *Flow[SummarizeInput, string]
DefineSummarizeFlow creates the summarize flow. Models are tried in order; first successful response wins.
func DefineSummarizeFlowWithGenerator ¶ added in v0.67.0
func DefineSummarizeFlowWithGenerator(generator generation.Generator) *Flow[SummarizeInput, string]
type MeetingNotesInput ¶ added in v0.59.0
type MeetingNotesInput struct {
Title string `json:"title,omitempty"`
Locale string `json:"locale,omitempty"`
Template meeting.Template `json:"template"`
// Anchors are the notes the user typed during the meeting. They say what
// mattered to the person who was there; the transcript supplies the context
// around them.
Anchors []meeting.Anchor `json:"anchors,omitempty"`
// Transcript is what was said, already deduplicated and ordered.
Transcript []meeting.TranscriptLine `json:"transcript"`
// ContextWindowTokens is what the model can hold. Zero means "assume a
// large one" and take the single-pass route.
ContextWindowTokens int `json:"contextWindowTokens,omitempty"`
}
MeetingNotesInput is one meeting to write up.
type MeetingNotesOutput ¶ added in v0.59.0
type MeetingNotesOutput struct {
Document meeting.NotesDocument `json:"document"`
// Structured is false when no model returned parseable structure and the
// notes are prose only. Callers surface that rather than pretending the
// bullets carry provenance.
Structured bool `json:"structured"`
// Passes counts the model calls it took, so a slow local run is explicable.
Passes int `json:"passes"`
Provider string `json:"provider,omitempty"`
Model string `json:"model,omitempty"`
}
MeetingNotesOutput is the finished write-up, plus how it was produced.
type SummarizeInput ¶
type SummarizeInput struct {
Text string `json:"text"`
Instruction string `json:"instruction,omitempty"`
Locale string `json:"locale,omitempty"`
}
SummarizeInput is the input for the summarize flow.