/** * @module teams-ai */ /** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ import { TurnContext } from 'botbuilder'; import { Tokenizer } from '../tokenizers'; import { PromptFunctions } from './PromptFunctions'; import { Message } from './Message'; import { Memory } from '../MemoryFork'; /** * A section that can be rendered to a prompt as either text or an array of `Message` objects. */ export interface PromptSection { /** * If true the section is mandatory otherwise it can be safely dropped. */ readonly required: boolean; /** * The requested token budget for this section. * - Values between 0.0 and 1.0 represent a percentage of the total budget and the section will be layed out proportionally to all other sections. * - Values greater than 1.0 represent the max number of tokens the section should be allowed to consume. */ readonly tokens: number; /** * Renders the section as a string of text. * @param context Context for the current turn of conversation with the user. * @param memory An interface for accessing state values. * @param functions Registry of functions that can be used by the section. * @param tokenizer Tokenizer to use when rendering the section. * @param maxTokens Maximum number of tokens allowed to be rendered. */ renderAsText(context: TurnContext, memory: Memory, functions: PromptFunctions, tokenizer: Tokenizer, maxTokens: number): Promise>; /** * Renders the section as a list of messages. * @param context Context for the current turn of conversation with the user. * @param memory An interface for accessing state values. * @param functions Registry of functions that can be used by the section. * @param tokenizer Tokenizer to use when rendering the section. * @param maxTokens Maximum number of tokens allowed to be rendered. */ renderAsMessages(context: TurnContext, memory: Memory, functions: PromptFunctions, tokenizer: Tokenizer, maxTokens: number): Promise>; } /** * The result of rendering a section. */ export interface RenderedPromptSection { /** * The section that was rendered. */ output: T; /** * The number of tokens that were rendered. */ length: number; /** * If true the section was truncated because it exceeded the maxTokens budget. */ tooLong: boolean; } //# sourceMappingURL=PromptSection.d.ts.map