promptly-ai
Version:
A universal template-based prompt management system for LLM applications
70 lines • 1.74 kB
TypeScript
export interface TemplateMetadata {
name: string;
description: string;
model?: string;
temperature?: number;
maxTokens?: number;
maxThinkingTokens?: number;
version?: string;
}
export interface TemplateMessage {
role: 'user' | 'assistant';
content: string;
condition?: string;
}
export interface TemplateContent {
systemPrompt?: string;
messages: TemplateMessage[];
}
export interface ParsedTemplate {
metadata: TemplateMetadata;
content: TemplateContent;
}
export interface LLMMessage {
role: 'system' | 'user' | 'assistant';
content: string;
}
export interface LLMConfig {
model: string;
messages: LLMMessage[];
temperature?: number;
maxTokens?: number;
maxThinkingTokens?: number;
}
export interface RenderContext {
[key: string]: any;
}
export interface RenderedPrompt {
config: LLMConfig;
metadata: TemplateMetadata;
}
export interface LLMUsageResult {
content: string;
provider: string;
model: string;
inputTokens: number;
outputTokens: number;
costUsd?: number;
thinkingTokens?: number;
}
export interface LLMAdapter {
name: string;
generate(config: LLMConfig): Promise<LLMUsageResult>;
supportsModel(model: string): boolean;
}
export interface PromptlyConfig {
templatesPath: string;
adapters: LLMAdapter[];
defaultModel?: string;
cache?: boolean;
}
export interface TemplateValidationRule {
field: string;
required?: boolean;
type?: 'string' | 'number' | 'boolean' | 'object' | 'array';
validator?: (value: any) => boolean;
}
export interface TemplateValidationSchema {
[templateName: string]: TemplateValidationRule[];
}
//# sourceMappingURL=index.d.ts.map