Chatoyant - v0.2.1
    Preparing search index...

    Class XAIClient

    xAI API client.

    const client = new XAIClient({
    apiKey: process.env.API_KEY_XAI!,
    defaultModel: 'grok-3',
    });

    // Chat
    const text = await client.chatSimple([
    { role: 'user', content: 'Hello!' }
    ]);

    // Stream
    for await (const delta of client.streamContent([
    { role: 'user', content: 'Tell me a story' }
    ])) {
    process.stdout.write(delta.content);
    }

    // Web search (xAI-specific)
    const response = await client.chatWithWebSearch([
    { role: 'user', content: 'What happened in the news today?' }
    ]);
    Index

    Constructors

    Properties

    cosineSimilarity: (a: number[], b: number[]) => number = cosineSimilarity

    Calculate cosine similarity between two vectors.

    Type Declaration

      • (a: number[], b: number[]): number
      • Calculate cosine similarity between two vectors.

        Parameters

        • a: number[]

          First vector

        • b: number[]

          Second vector

        Returns number

        Similarity score between -1 and 1

    findSimilar: <T>(
        query: number[],
        corpus: { embedding: number[]; item: T }[],
        topK?: number,
    ) => { item: T; score: number }[] = findSimilar

    Find similar items from a corpus.

    Type Declaration

      • <T>(
            query: number[],
            corpus: { embedding: number[]; item: T }[],
            topK?: number,
        ): { item: T; score: number }[]
      • Find the most similar items from a corpus.

        Type Parameters

        • T

        Parameters

        • query: number[]

          Query embedding

        • corpus: { embedding: number[]; item: T }[]

          Array of items with embeddings

        • topK: number = 5

          Number of results to return

        Returns { item: T; score: number }[]

        Top K most similar items with scores

    Methods

    • Create a chat completion.

      Parameters

      • messages: Message[]
      • Optionaloptions: Partial<ChatOptions>

      Returns Promise<ChatCompletion>

    • Create a chat completion and return just the text content.

      Parameters

      • messages: Message[]
      • Optionaloptions: Partial<ChatOptions>

      Returns Promise<string>

    • Chat with tools/function calling.

      Parameters

      • messages: Message[]
      • tools: Tool[]
      • Optionaloptions: Partial<ChatOptions> & { toolChoice?: ToolChoice; parallelToolCalls?: boolean }

      Returns Promise<
          | { type: "content"; content: string; usage: Usage }
          | { type: "tool_calls"; toolCalls: ToolCall[]; usage: Usage },
      >

    • Chat with web search enabled (xAI-specific).

      Parameters

      • messages: Message[]
      • Optionaloptions: Partial<ChatOptions>

      Returns Promise<ChatCompletion>

    • Chat with structured JSON output.

      Type Parameters

      • T

      Parameters

      • messages: Message[]
      • schema: {
            name: string;
            description?: string;
            schema: Record<string, unknown>;
            strict?: boolean;
        }
      • Optionaloptions: Partial<ChatOptions>

      Returns Promise<T>

    • Stream chat completion chunks.

      Parameters

      • messages: Message[]
      • Optionaloptions: Partial<ChatStreamOptions>

      Returns AsyncGenerator<ChatCompletionChunk, void, undefined>

    • Stream content deltas.

      Parameters

      • messages: Message[]
      • Optionaloptions: Partial<ChatStreamOptions>

      Returns AsyncGenerator<StreamDelta, void, undefined>

    • Stream and accumulate full response.

      Parameters

      • messages: Message[]
      • Optionaloptions: Partial<ChatStreamOptions>
      • OptionalonDelta: (delta: string) => void

      Returns Promise<
          {
              content: string;
              toolCalls: {
                  id: string;
                  type: "function";
                  function: { name: string; arguments: string };
              }[];
              finishReason: string
              | null;
              usage: Usage | null;
              model: string;
              id: string;
          },
      >

    • Create a readable stream of content.

      Parameters

      • messages: Message[]
      • Optionaloptions: Partial<ChatStreamOptions>

      Returns ReadableStream<string>

    • Generate embeddings for text input.

      Parameters

      • input: string | string[]
      • Optionaloptions: Partial<EmbeddingOptions>

      Returns Promise<EmbeddingResponse>

    • Generate embedding for a single text.

      Parameters

      • text: string
      • Optionaloptions: Partial<EmbeddingOptions>

      Returns Promise<number[]>

    • Generate embeddings for multiple texts.

      Parameters

      • texts: string[]
      • Optionaloptions: Partial<EmbeddingOptions>

      Returns Promise<number[][]>

    • Generate images from a prompt.

      Parameters

      • prompt: string
      • Optionaloptions: Partial<ImageGenerationOptions>

      Returns Promise<ImageGenerationResponse>

    • Generate a single image and return its URL.

      Parameters

      • prompt: string
      • Optionaloptions: Partial<ImageGenerationOptions>

      Returns Promise<string>

    • Generate a single image and return its base64 data.

      Parameters

      • prompt: string
      • Optionaloptions: Partial<ImageGenerationOptions>

      Returns Promise<string>

    • List all models (OpenAI-compatible).

      Returns Promise<ModelsResponse>

    • Get a specific model (OpenAI-compatible).

      Parameters

      • modelId: string

      Returns Promise<Model>

    • Check if a model exists.

      Parameters

      • modelId: string

      Returns Promise<boolean>

    • List language models with detailed information (xAI-specific).

      Returns Promise<LanguageModelsResponse>

    • Get a specific language model (xAI-specific).

      Parameters

      • modelId: string

      Returns Promise<LanguageModel>

    • List image generation models (xAI-specific).

      Returns Promise<ImageGenerationModelsResponse>

    • Get a specific image generation model (xAI-specific).

      Parameters

      • modelId: string

      Returns Promise<ImageGenerationModel>