@nullplatform/llm-gateway-sdk
Version:
SDK for LLM Gateway plugin development
45 lines • 1.46 kB
TypeScript
import { IRequestContext } from './context.js';
import { IConfigurableExtension } from "./extension";
export interface IPluginConfig {
name: string;
type: string;
enabled: boolean;
priority?: number;
config?: any;
conditions?: {
paths?: Array<string | RegExp>;
methods?: Array<string | RegExp>;
headers?: Record<string, string | RegExp>;
user_ids?: Array<string | RegExp>;
models?: Array<string | RegExp>;
};
}
export interface IPluginExecution {
pluginName: string;
result: IPluginResult;
executionTime: number;
}
export interface IPluginPhaseExecution {
finalResult: IPluginResult;
totalExecutionTime: number;
executions: Array<IPluginExecution>;
}
export interface IPlugin extends IConfigurableExtension {
beforeModel?(llmRequest: IRequestContext): Promise<IPluginResult>;
onModelError?(llmRequest: IRequestContext): Promise<IPluginResult>;
afterModel?(llmRequest: IRequestContext): Promise<IPluginResult>;
afterChunk?(llmRequest: IRequestContext): Promise<IPluginResult>;
detachedAfterResponse?(llmRequest: IRequestContext): Promise<void>;
}
export interface IPluginResult {
success: boolean;
pluginName?: string;
status?: number;
context?: IRequestContext;
error?: Error;
reevaluateRequest?: boolean;
skipRemaining?: boolean;
terminate?: boolean;
emitChunk?: boolean;
}
//# sourceMappingURL=plugin.d.ts.map