47 lines
1.1 KiB
TypeScript
47 lines
1.1 KiB
TypeScript
/**
|
|
* Interfaces for LLM integration
|
|
*/
|
|
export interface LlmConfig {
|
|
apiKey: string;
|
|
model: string;
|
|
temperature?: number;
|
|
maxTokens?: number;
|
|
topP?: number;
|
|
frequencyPenalty?: number;
|
|
presencePenalty?: number;
|
|
}
|
|
export interface ActionRequest {
|
|
playerInput: string;
|
|
currentRoom: string;
|
|
visibleObjects: string[];
|
|
visibleCharacters: string[];
|
|
possibleActions: string[];
|
|
inventory: string[];
|
|
gameContext: string;
|
|
}
|
|
export interface ActionResponse {
|
|
action: string;
|
|
object?: string;
|
|
target?: string;
|
|
parameters?: Record<string, string>;
|
|
confidence: number;
|
|
}
|
|
export interface NarrativeRequest {
|
|
action: string;
|
|
result: string;
|
|
roomDescription: string;
|
|
visibleObjects: string[];
|
|
visibleCharacters: string[];
|
|
previousContext?: string;
|
|
tone?: string;
|
|
}
|
|
export interface NarrativeResponse {
|
|
text: string;
|
|
suggestions?: string[];
|
|
}
|
|
export interface LlmProvider {
|
|
initialize(config: LlmConfig): Promise<void>;
|
|
translateAction(request: ActionRequest): Promise<ActionResponse>;
|
|
generateNarrative(request: NarrativeRequest): Promise<NarrativeResponse>;
|
|
}
|