UNPKG

@microsoft/teams-ai

Version:

SDK focused on building AI based applications for Microsoft Teams.

53 lines 2.38 kB
"use strict"; /** * @module teams-ai */ /** * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. */ Object.defineProperty(exports, "__esModule", { value: true }); exports.FunctionResponseMessage = void 0; const PromptSectionBase_1 = require("./PromptSectionBase"); const Utilities_1 = require("../Utilities"); /** * Message containing the response to a function call. */ class FunctionResponseMessage extends PromptSectionBase_1.PromptSectionBase { _text = ''; _length = -1; name; response; /** * Creates a new 'FunctionResponseMessage' instance. * @param {string} name - Name of the function that was called. * @param {any} response - The response returned by the called function. * @param {number} tokens - Optional. Sizing strategy for this section. Defaults to `auto`. * @param {string} functionPrefix - Optional. Prefix to use for function messages when rendering as text. Defaults to `user: ` to simulate the response coming from the user. */ constructor(name, response, tokens = -1, functionPrefix = 'user: ') { super(tokens, true, '\n', functionPrefix); this.name = name; this.response = response; } /** * @private * @param {TurnContext} context - Context for the current turn of conversation. * @param {Memory} memory - Memory to use for rendering. * @param {PromptFunctions} functions - Prompt functions to use for rendering. * @param {Tokenizer} tokenizer - Tokenizer to use for encoding text. * @param {number} maxTokens - Maximum number of tokens allowed. * @returns {Promise<RenderedPromptSection<Message[]>>} Rendered prompt section as a string. */ async renderAsMessages(context, memory, functions, tokenizer, maxTokens) { // Calculate and cache response text and length if (this._length < 0) { this._text = Utilities_1.Utilities.toString(tokenizer, this.response); this._length = tokenizer.encode(this.name).length + tokenizer.encode(this._text).length; } // Return output return this.returnMessages([{ role: 'function', name: this.name, content: this._text }], this._length, tokenizer, maxTokens); } } exports.FunctionResponseMessage = FunctionResponseMessage; //# sourceMappingURL=FunctionResponseMessage.js.map