@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
TypeScript
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;
}