langchain.js
    Preparing search index...

    Variable convertMessagesToCompletionsMessageParamsConst

    convertMessagesToCompletionsMessageParams: BaseDynamicToolInput<
        { messages: BaseDynamicToolInput[]; model?: string },
        OpenAIClient.Chat.Completions.ChatCompletionMessageParam[],
    > = ...

    Converts an array of LangChain BaseMessages to OpenAI Chat Completions API message parameters.

    This converter transforms LangChain's internal message representation into the format required by OpenAI's Chat Completions API. It handles various message types, roles, content formats, tool calls, function calls, audio messages, and special model-specific requirements.

    The converter performs several key transformations:

    • Maps LangChain message types to OpenAI roles (user, assistant, system, tool, function, developer)
    • Converts standard content blocks (v1 format) using a specialized converter
    • Handles multimodal content including text, images, audio, and data blocks
    • Preserves tool calls and function calls with proper formatting
    • Applies model-specific role mappings (e.g., "system" → "developer" for reasoning models)
    • Splits audio messages into separate message parameters when needed

    Conversion parameters

    Array of LangChain BaseMessages to convert. Can include any message type: HumanMessage, AIMessage, SystemMessage, ToolMessage, FunctionMessage, etc.

    Optional model name used to determine if special role mapping is needed. For reasoning models (o1, o3, etc.), "system" role is converted to "developer" role.

    Array of ChatCompletionMessageParam objects formatted for OpenAI's Chat Completions API. Some messages may be split into multiple parameters (e.g., audio messages).

    Basic message conversion:

    const messages = [
    new HumanMessage("What's the weather like?"),
    new AIMessage("Let me check that for you.")
    ];

    const params = convertMessagesToCompletionsMessageParams({
    messages,
    model: "gpt-4"
    });
    // Returns:
    // [
    // { role: "user", content: "What's the weather like?" },
    // { role: "assistant", content: "Let me check that for you." }
    // ]

    Message with tool calls:

    const messages = [
    new AIMessage({
    content: "",
    tool_calls: [{
    id: "call_123",
    name: "get_weather",
    args: { location: "San Francisco" }
    }]
    })
    ];

    const params = convertMessagesToCompletionsMessageParams({ messages });
    // Returns:
    // [{
    // role: "assistant",
    // content: "",
    // tool_calls: [{
    // id: "call_123",
    // type: "function",
    // function: { name: "get_weather", arguments: '{"location":"San Francisco"}' }
    // }]
    // }]