@aituber-onair/chat
Version:
Chat and LLM API integration library for AITuber OnAir
51 lines • 2.29 kB
TypeScript
import { Message, MessageWithVision } from '../types';
import { ToolChatCompletion } from '../types/toolChat';
/**
* Chat service interface
* Abstracts interaction with AI models
*/
export interface ChatService {
/**
* Get the model name
* @returns Model name
*/
getModel(): string;
/**
* Get the vision model name
* @returns Vision model name
*/
getVisionModel(): string;
/**
* Process chat messages
* @param messages Array of messages to send
* @param onPartialResponse Callback to receive each part of streaming response
* @param onCompleteResponse Callback to execute when response is complete
*/
processChat(messages: Message[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
/**
* Process chat messages with images
* @param messages Array of messages to send (including images)
* @param onPartialResponse Callback to receive each part of streaming response
* @param onCompleteResponse Callback to execute when response is complete
*/
processVisionChat(messages: MessageWithVision[], onPartialResponse: (text: string) => void, onCompleteResponse: (text: string) => Promise<void>): Promise<void>;
/**
* Process chat messages with tools
* @param messages Array of messages to send
* @param stream Whether to use streaming
* @param onPartialResponse Callback for partial responses
* @param maxTokens Maximum tokens for response (optional)
* @returns Tool chat completion
*/
chatOnce(messages: Message[], stream: boolean, onPartialResponse: (text: string) => void, maxTokens?: number): Promise<ToolChatCompletion>;
/**
* Process chat messages with tools and images
* @param messages Array of messages to send (including images)
* @param stream Whether to use streaming
* @param onPartialResponse Callback for partial responses
* @param maxTokens Maximum tokens for response (optional)
* @returns Tool chat completion
*/
visionChatOnce(messages: MessageWithVision[], stream: boolean, onPartialResponse: (text: string) => void, maxTokens?: number): Promise<ToolChatCompletion>;
}
//# sourceMappingURL=ChatService.d.ts.map