Chatoyant - v0.2.1
    Preparing search index...

    Class OpenAIClient

    OpenAI API client.

    const client = new OpenAIClient({
    apiKey: process.env.API_KEY_OPENAI!,
    defaultModel: 'gpt-4o',
    });

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

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

    // Embeddings
    const vector = await client.embedOne('Hello, world!');

    // Images
    const url = await client.generateImageUrl('A sunset over mountains');
    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

        Cosine similarity (-1 to 1)

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

    Find similar items from a corpus.

    Type Declaration

      • <T>(
            query: number[],
            candidates: { embedding: number[]; data: T }[],
            topK?: number,
        ): { data: T; score: number }[]
      • Find most similar items from a list of embeddings.

        Type Parameters

        • T

        Parameters

        • query: number[]

          Query embedding

        • candidates: { embedding: number[]; data: T }[]

          Array of candidate embeddings with associated data

        • topK: number = 5

          Number of results to return

        Returns { data: 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 content.

      Parameters

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

      Returns Promise<string>

    • Chat with tool handling.

      Parameters

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

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

    • Chat with structured 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>
      • OptionalonChunk: (delta: { content: string; chunk: ChatCompletionChunk }) => 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>

    • Create embeddings.

      Parameters

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

      Returns Promise<EmbeddingResponse>

    • Create embedding for single text.

      Parameters

      • input: string
      • Optionaloptions: Partial<EmbeddingOptions>

      Returns Promise<number[]>

    • Create embeddings for multiple texts.

      Parameters

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

      Returns Promise<number[][]>

    • Generate images.

      Parameters

      • prompt: string
      • Optionaloptions: Partial<ImageGenerationOptions>

      Returns Promise<ImageGenerationResponse>

    • Generate a single image URL.

      Parameters

      • prompt: string
      • Optionaloptions: Partial<ImageGenerationOptions>

      Returns Promise<string>

    • Generate a single image as base64.

      Parameters

      • prompt: string
      • Optionaloptions: Partial<ImageGenerationOptions>

      Returns Promise<string>

    • Generate multiple images.

      Parameters

      • prompt: string
      • count: number
      • Optionaloptions: Partial<ImageGenerationOptions>

      Returns Promise<ImageData[]>

    • Check if a model exists.

      Parameters

      • modelId: string

      Returns Promise<boolean>