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
text/typescript
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;
}