@react-native-ai/mlc
Version:
MLC LLM provider for Vercel AI SDK
96 lines • 2.83 kB
TypeScript
import type { TurboModule } from 'react-native';
import type { EventEmitter } from 'react-native/Libraries/Types/CodegenTypes';
export interface ModelConfig {
model_id?: string;
}
type MessageRole = 'assistant' | 'system' | 'tool' | 'user';
export interface Message {
role: MessageRole;
content: string;
}
export interface CompletionUsageExtra {
ttft_s: number;
prefill_tokens_per_s: number;
prompt_tokens: number;
jump_forward_tokens: number;
completion_tokens: number;
end_to_end_latency_s: number;
prefill_tokens: number;
inter_token_latency_s: number;
decode_tokens_per_s: number;
decode_tokens: number;
}
export interface CompletionUsage {
prompt_tokens: number;
completion_tokens: number;
total_tokens: number;
extra: CompletionUsageExtra;
}
export interface GeneratedMessage {
role: MessageRole;
content: string;
tool_calls: ChatToolCall[];
finish_reason: 'stop' | 'length' | 'tool_calls';
usage: CompletionUsage;
}
export interface ResponseFormat {
type: 'json_object' | 'text';
schema?: string;
}
export interface ChatFunctionCall {
name: string;
arguments?: Record<string, string>;
}
export interface ChatToolCall {
id: string;
type: string;
function: ChatFunctionCall;
}
export interface ChatFunctionTool {
name: string;
description?: string;
parameters: Record<string, string>;
}
export interface ChatTool {
type: 'function';
function: ChatFunctionTool;
}
export interface GenerationOptions {
temperature?: number;
maxTokens?: number;
topP?: number;
topK?: number;
responseFormat?: ResponseFormat;
tools?: ChatTool[];
toolChoice?: 'none' | 'auto';
}
export interface DownloadProgress {
percentage: number;
}
export interface ChatUpdateEvent {
delta: {
content: string;
role: MessageRole;
};
}
export interface ChatCompleteEvent {
usage: CompletionUsage;
finish_reason: 'stop' | 'length' | 'tool_calls';
}
export interface Spec extends TurboModule {
getModel(name: string): Promise<ModelConfig>;
getModels(): Promise<ModelConfig[]>;
generateText(messages: Message[], options?: GenerationOptions): Promise<GeneratedMessage>;
streamText(messages: Message[], options?: GenerationOptions): Promise<string>;
cancelStream(streamId: string): Promise<void>;
downloadModel(modelId: string): Promise<void>;
removeModel(modelId: string): Promise<void>;
prepareModel(modelId: string): Promise<void>;
unloadModel(): Promise<void>;
onChatUpdate: EventEmitter<ChatUpdateEvent>;
onChatComplete: EventEmitter<ChatCompleteEvent>;
onDownloadProgress: EventEmitter<DownloadProgress>;
}
declare const _default: Spec;
export default _default;
//# sourceMappingURL=NativeMLCEngine.d.ts.map