useAskAI

Access AskAI state and actions

Overview

Accesses the AskAI context for state, messages, and actions. Use it inside AskAI or AskAIProvider.

Type Definition

import type { ChatStatus, UIMessage } from 'ai';

export type AskAIActionOptions = {
  open?: boolean;
};

export interface AskAIContextValue {
  open: boolean;
  setOpen: (open: boolean) => void;
  toggleOpen: () => void;
  input: string;
  setInput: (value: string, options?: AskAIActionOptions) => void;
  messages: UIMessage[];
  status: ChatStatus;
  error: Error | undefined;
  isLoading: boolean;
  sendMessage: (message: { text: string }, options?: AskAIActionOptions) => void;
  handleSubmit: (message: { text?: string }) => void;
  regenerate: (options?: { messageId?: string }) => void;
  clearMessages: () => void | Promise<void>;
}

export declare function useAskAI(): AskAIContextValue;

Usage

import { useAskAI } from 'peam/client';

export function AskButton() {
  const { sendMessage, setOpen } = useAskAI();

  return (
    <button
      onClick={() => {
        setOpen(true);
        sendMessage({ text: 'What does this page cover?' });
      }}
    >
      Ask AI
    </button>
  );
}

Notes

  • setInput and sendMessage accept options.open (default true) to control whether the UI opens.
  • The hook must be used inside AskAI or AskAIProvider.

On this page

GitHubEdit this page on GitHub