UNPKG

@promptbook/azure-openai

Version:

Promptbook: Run AI apps in plain human language across multiple models and platforms

67 lines (66 loc) 2.84 kB
import type { Promisable } from 'type-fest'; import type { Parameters } from '../../types/typeAliases'; import type { string_name } from '../../types/typeAliases'; import type { string_parameter_name } from '../../types/typeAliases'; import type { string_SCREAMING_CASE } from '../../utils/normalization/normalizeTo_SCREAMING_CASE'; import type { empty_object } from '../../utils/organization/empty_object'; /** * Defines how to extract or map subvalues from a main value in a specific format (e.g., cells from CSV, items from JSON array). * Used for iterating or transforming structured data in pipeline tasks. */ export type FormatSubvalueParser<TValue extends string, TSettings extends empty_object> = { /** * The name of the format used in .book.md files * * @example "CELL" */ readonly subvalueName: string_name & string_SCREAMING_CASE; /** * Aliases for the `subvalueName` */ readonly aliases?: ReadonlyArray<string_name & string_SCREAMING_CASE>; /** * Maps or transforms subvalues from the main value. For example, iterates over all CSV cells or JSON array items. * * @param options - Options for mapping, including callbacks for progress and value transformation. * @returns The final mapped string result. */ mapValues(options: FormatSubvalueParserMapValuesOptions<TValue, TSettings>): Promise<string>; }; /** * Options for mapping or extracting subvalues from a main value using a FormatSubvalueParser. */ export type FormatSubvalueParserMapValuesOptions<TValue extends string, TSettings extends empty_object> = { /** * The input string value to parse for subvalues */ readonly value: TValue; /** * The name of the output parameter where the processed value will be stored */ readonly outputParameterName: string_parameter_name; /** * Format-specific settings that control how subvalues are parsed or processed */ readonly settings: TSettings; /** * Callback function that processes each subvalue and returns the transformed value * * @param subvalues Object containing the extracted subvalues * @param index Current index of the subvalue which is being mapped * @param length Full length of the subvalues * @param number Total number of subvalues to process * @returns Transformed value after processing */ mapCallback(subvalues: Parameters, index: number, length: number): Promisable<TValue>; /** * Progress callback that receives partial results during processing * * @param partialResultString The current partial result as processing progresses * @returns Promise or void to continue execution */ onProgress(partialResultString: TValue): Promisable<void>; }; /** * Note: [👩🏾‍🤝‍🧑🏽] */