UNPKG

@promptbook/remote-server

Version:

Promptbook: Create persistent AI agents that turn your company's scattered knowledge into action

58 lines (57 loc) 2.44 kB
import type OpenAI from 'openai'; import type { ChatModelRequirements } from '../../../types/ModelRequirements'; import type { Prompt } from '../../../types/Prompt'; import type { string_model_name } from '../../../types/string_model_name'; import type { TODO_any } from '../../../utils/organization/TODO_any'; /** * Builds cloned prompt payloads, OpenAI messages, and raw chat requests. * * @private helper of `callOpenAiCompatibleChatModel` */ export declare class OpenAiCompatibleChatPromptBuilder { /** * Creates a deep copy of the prompt while keeping attached files intact when structured clone is not available. */ clonePromptPreservingFiles(prompt: Prompt): Prompt; /** * Resolves OpenAI chat creation settings from model requirements and prompt format. */ createModelSettings(options: { readonly currentModelRequirements: ChatModelRequirements; readonly format?: Prompt['format']; readonly modelName: string_model_name; }): OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming; /** * Creates the full OpenAI chat message list, including system, thread, and user content. */ createMessages(options: { readonly prompt: Prompt; readonly currentModelRequirements: ChatModelRequirements; readonly rawPromptContent: string; }): Promise<Array<OpenAI.Chat.Completions.ChatCompletionMessageParam>>; /** * Creates one raw OpenAI chat request from the current conversation state. */ createRawRequest(options: { readonly modelSettings: OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming; readonly messages: Array<OpenAI.Chat.Completions.ChatCompletionMessageParam>; readonly tools: ReadonlyArray<TODO_any> | undefined; readonly userId: string | number | undefined; }): OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming; /** * Provides access to the structured clone implementation when available. */ private getStructuredCloneFunction; /** * Checks whether the prompt is a chat prompt that carries file attachments. */ private hasChatPromptFiles; /** * Converts the existing prompt thread into OpenAI chat messages. */ private createThreadMessages; /** * Builds the final user message, including inline image attachments when present. */ private createPromptUserMessage; }