Interface that all AI providers must implement.

interface AIProvider {
    name: string;
    displayName: string;
    sendMessage(
        prompt: string,
        apiKey: string,
        options?: { baseUrl?: string; modelName?: string },
        onProgress?: (chunk: string) => void,
    ): Promise<string>;
    getModels(
        apiKey: string,
        options?: { baseUrl?: string; type?: "image" | "chat" },
    ): Promise<any[]>;
}

Implemented by

Properties

name: string
displayName: string

Methods

  • Sends a message to the AI provider.

    Parameters

    • prompt: string

      User's message

    • apiKey: string

      API Key (optional for local)

    • Optionaloptions: { baseUrl?: string; modelName?: string }

      Additional options (baseUrl, modelName)

    • OptionalonProgress: (chunk: string) => void

      Callback for streaming responses (optional)

    Returns Promise<string>

    Full response string

  • Fetches available models from the provider.

    Parameters

    • apiKey: string

      API Key

    • Optionaloptions: { baseUrl?: string; type?: "image" | "chat" }

      Base URL override

    Returns Promise<any[]>