Skip to content

AI Providers

@guideflow/ai ships with four built-in providers. Pass any of them to createAI().

OpenAIProvider

Uses the OpenAI Chat Completions API (GPT-4o by default).

ts
import { OpenAIProvider } from '@guideflow/ai'

new OpenAIProvider(options?: OpenAIProviderOptions)

OpenAIProviderOptions

OptionTypeDefaultDescription
apiKeystringYour OpenAI API key
modelstring"gpt-4o"Model identifier
baseURLstringOpenAI defaultOverride for custom endpoints / proxies
ts
const provider = new OpenAIProvider({
  apiKey: import.meta.env.VITE_OPENAI_KEY,
  model: 'gpt-4o-mini',
})

AnthropicProvider

Uses the Anthropic Messages API (Claude 3.5 Sonnet by default).

ts
import { AnthropicProvider } from '@guideflow/ai'

new AnthropicProvider(options?: AnthropicProviderOptions)

AnthropicProviderOptions

OptionTypeDefaultDescription
apiKeystringYour Anthropic API key
modelstring"claude-3-5-sonnet-20241022"Model identifier
baseURLstringAnthropic defaultOverride for proxies
ts
const provider = new AnthropicProvider({
  apiKey: import.meta.env.VITE_ANTHROPIC_KEY,
})

OllamaProvider

Runs inference locally using Ollama. No API key required.

ts
import { OllamaProvider } from '@guideflow/ai'

new OllamaProvider(options?: OllamaProviderOptions)

OllamaProviderOptions

OptionTypeDefaultDescription
modelstring"llama3"Local model name
baseURLstring"http://localhost:11434"Ollama server URL
ts
const provider = new OllamaProvider({ model: 'mistral' })

MockProvider

Returns deterministic stub responses. Useful for tests and Storybook.

ts
import { MockProvider } from '@guideflow/ai'

new MockProvider()

No options — produces a fixed set of generated steps and a fixed chat answer.

ts
import { createAI, MockProvider } from '@guideflow/ai'

const gf = createAI(new MockProvider(), createGuideFlow({}))

const steps = await gf.ai.generate()   // returns predictable stub steps

Custom Provider

Implement the AIProvider interface to bring your own backend:

ts
import type { AIProvider, PageContext } from '@guideflow/ai'
import type { Step, GuidedAnswer } from '@guideflow/core'

class MyProvider implements AIProvider {
  async generateSteps(context: PageContext, prompt: string): Promise<Step[]> {
    // Call your API…
    return []
  }

  async answerQuestion(context: PageContext, question: string): Promise<GuidedAnswer> {
    return { answer: '…', stepId: null }
  }
}

See Also

Released under the MIT License.