UNPKG

tiny-ai-api

Version:

A customizable and extensible client api for managing conversations and AI interactions, currently supporting the **Google Gemini** API — with flexibility to support any similar AI APIs.

88 lines (87 loc) 3.09 kB
export function defuzzifyCentroid(fuzzyOutput: { [x: string]: number; }, outputSets: FuzzySet[], step?: number): number; export function trapezoid(value: number, a: number, b: number, c: number, d: number, optimize?: boolean): number; /** * Represents a single Membership Function (Trapezoidal). */ export class FuzzySet { /** * Utility to calculate fuzzy membership using a trapezoidal shape. * @param {number} value - The input value to check. * @param {number} a - Start of the rise. * @param {number} b - End of the rise (start of plateau). * @param {number} c - Start of the fall (end of plateau). * @param {number} d - End of the fall. * @param {boolean} [optimize=false] - Performance optimization flag. * @returns {number} Degree of membership [0, 1]. */ static trapezoid(value: number, a: number, b: number, c: number, d: number, optimize?: boolean): number; /** * @param {string} name - Name of the set (e.g., "Hot"). * @param {number} a - Left foot. * @param {number} b - Left shoulder. * @param {number} c - Right shoulder. * @param {number} d - Right feet. * @param {boolean} [optimize=false] - Enables performance optimization. */ constructor(name: string, a: number, b: number, c: number, d: number, optimize?: boolean); set name(value: string); get name(): string; set a(value: number); get a(): number; set b(value: number); get b(): number; set c(value: number); get c(): number; set d(value: number); get d(): number; set optimize(value: boolean); get optimize(): boolean; /** * Calculates the membership degree. * @param {number} x - Crisp input. * @returns {number} */ calculate(x: number): number; #private; } /** * The Inference Engine handles linguistic variables and defuzzification. */ export class MamdaniInferenceSystem { /** * Registers a linguistic variable and its sets. * @param {string} name - Variable name (e.g., "temperature"). * @param {FuzzySet[]} sets - Array of fuzzy sets. */ addVariable(name: string, sets: FuzzySet[]): void; /** * Removes a linguistic variable. * @param {string} name - Variable name (e.g., "temperature"). * @returns {boolean} True if the element was successfully removed. */ removeVariable(name: string): boolean; /** * Gets a linguistic variable and its sets. * @param {string} name - Variable name (e.g., "temperature"). * @returns {FuzzySet[]} */ getVariable(name: string): FuzzySet[]; /** * Checks if a linguistic variable exists. * @param {string} name - Variable name (e.g., "temperature"). * @returns {boolean} */ hasVariable(name: string): boolean; /** * Fuzzifies a crisp input into a map of memberships. * @param {string} varName * @param {number} value * @returns {Object.<string, number>} */ fuzzify(varName: string, value: number): { [x: string]: number; }; #private; }