Skip to content

@sqlrooms/ai / AiSliceOptions

Interface: AiSliceOptions<TTools>

Configuration options for creating an AI slice.

TTools is inferred from the tools value and constrains toolRenderers:

  • Keys must be present in tools
  • Each renderer's output prop is typed to that tool's return type

Example

ts
createAiSlice({
  tools: {query: createQueryTool(store), chart: createVegaChartTool()},
  toolRenderers: {
    query: QueryToolResult,        // ToolRenderer<QueryToolOutput>
    chart: VegaChartToolResult,    // ToolRenderer<VegaChartToolOutput>
    TYPO: SomeRenderer,            // compile error — not a key of tools
  },
})

Type Parameters

Type ParameterDefault type
TTools extends ToolSetToolSet

Properties

config?

optional config: Partial<{ sessions: object[]; currentSessionId?: string; openSessionTabs?: string[]; }>


initialPrompt?

optional initialPrompt: string


tools

tools: TTools


toolRenderers?

optional toolRenderers: ToolRenderers<TTools>


getInstructions()

getInstructions: () => string

Returns

string


defaultProvider?

optional defaultProvider: string


defaultModel?

optional defaultModel: string


getCustomModel()?

optional getCustomModel: () => LanguageModel | undefined

Provide a pre-configured model client for a provider (e.g., Azure).

Returns

LanguageModel | undefined


getProviderOptions?

optional getProviderOptions: GetProviderOptions


maxSteps?

optional maxSteps: number


getApiKey()?

optional getApiKey: (modelProvider) => string

Parameters

ParameterType
modelProviderstring

Returns

string


getBaseUrl()?

optional getBaseUrl: () => string

Returns

string


chatEndPoint?

optional chatEndPoint: string

Optional remote endpoint to use for chat; if empty, local transport is used


chatHeaders?

optional chatHeaders: Record<string, string>

Optional headers to send with remote endpoint