|
export interface Section { |
|
title: string |
|
items: string[] |
|
} |
|
|
|
export interface ClassificationOutput { |
|
sequence: string |
|
labels: string[] |
|
scores: number[] |
|
} |
|
|
|
export interface ChatMessage { |
|
role: 'system' | 'user' | 'assistant' |
|
content: string |
|
} |
|
|
|
export interface GenerationOutput { |
|
role: 'assistant' |
|
content: string |
|
} |
|
|
|
export type WorkerStatus = |
|
| 'initiate' |
|
| 'ready' |
|
| 'output' |
|
| 'loading' |
|
| 'progress' |
|
| 'error' |
|
| 'disposed' |
|
|
|
export interface WorkerMessage { |
|
status: WorkerStatus |
|
progress?: number |
|
error?: string |
|
output?: any |
|
} |
|
|
|
export interface ZeroShotWorkerInput { |
|
type: 'classify' |
|
text: string |
|
labels: string[] |
|
model: string |
|
dtype: QuantizationType |
|
} |
|
|
|
export interface TextClassificationWorkerInput { |
|
type: 'classify' |
|
text: string |
|
model: string |
|
dtype: QuantizationType |
|
config?: { |
|
top_k?: number |
|
} |
|
} |
|
|
|
export interface TextGenerationWorkerInput { |
|
type: 'generate' |
|
prompt?: string |
|
messages?: ChatMessage[] |
|
hasChatTemplate: boolean |
|
model: string |
|
config?: { |
|
temperature?: number |
|
max_new_tokens?: number |
|
top_p?: number |
|
top_k?: number |
|
do_sample?: boolean |
|
} |
|
dtype: QuantizationType |
|
} |
|
|
|
export interface FeatureExtractionWorkerInput { |
|
type: 'extract' | 'load' |
|
texts?: string[] |
|
model: string |
|
dtype: QuantizationType |
|
config: { |
|
pooling: 'mean' | 'cls' |
|
normalize: boolean |
|
} |
|
} |
|
|
|
export interface TextToSpeechWorkerInput { |
|
type: 'synthesize' |
|
text: string |
|
model: string |
|
dtype: QuantizationType |
|
isStyleTTS2: boolean |
|
config?: { |
|
speakerEmbeddings?: string |
|
voice?: string |
|
} |
|
} |
|
|
|
export interface ImageClassificationWorkerInput { |
|
type: 'classify' |
|
image: string | ImageData | HTMLImageElement | HTMLCanvasElement |
|
model: string |
|
dtype: QuantizationType |
|
config: { |
|
top_k?: number |
|
} |
|
} |
|
|
|
export interface ImageClassificationResult { |
|
label: string |
|
score: number |
|
} |
|
|
|
export interface ImageExample { |
|
id: string |
|
name: string |
|
url: string |
|
file?: File |
|
predictions?: ImageClassificationResult[] |
|
isLoading?: boolean |
|
} |
|
|
|
export interface EmbeddingExample { |
|
id: string |
|
text: string |
|
embedding?: number[] |
|
isLoading?: boolean |
|
} |
|
|
|
export interface SimilarityResult { |
|
exampleId: string |
|
similarity: number |
|
} |
|
|
|
const q8Types = ['q8', 'int8', 'bnb8', 'uint8'] as const |
|
const q4Types = ['q4', 'bnb4', 'q4f16'] as const |
|
const fp16Types = ['fp16'] as const |
|
const fp32Types = ['fp32'] as const |
|
|
|
type q8 = (typeof q8Types)[number] |
|
type q4 = (typeof q4Types)[number] |
|
type fp16 = (typeof fp16Types)[number] |
|
type fp32 = (typeof fp32Types)[number] |
|
|
|
export type QuantizationType = q8 | q4 | fp16 | fp32 |
|
export const allQuantizationTypes = [ |
|
...q8Types, |
|
...q4Types, |
|
...fp16Types, |
|
...fp32Types |
|
] as const |
|
|
|
export interface ModelInfo { |
|
id: string |
|
name: string |
|
architecture: string |
|
parameters: number |
|
likes: number |
|
downloads: number |
|
createdAt: string |
|
isCompatible?: boolean |
|
incompatibilityReason?: string |
|
supportedQuantizations: QuantizationType[] |
|
baseId?: string |
|
readme?: string |
|
hasChatTemplate: boolean |
|
isStyleTTS2: boolean |
|
widgetData?: any |
|
voices: string[] |
|
} |
|
|
|
export interface ModelInfoResponse { |
|
id: string |
|
createdAt: string |
|
config?: { |
|
architectures: string[] |
|
model_type: string |
|
tokenizer_config?: { |
|
chat_template?: string |
|
} |
|
} |
|
lastModified: string |
|
pipeline_tag: string |
|
tags: string[] |
|
cardData?: { |
|
base_model: string |
|
} |
|
baseId?: string |
|
transformersInfo: { |
|
pipeline_tag: string |
|
auto_model: string |
|
processor: string |
|
} |
|
safetensors?: { |
|
parameters: { |
|
BF16?: number |
|
F16?: number |
|
F32?: number |
|
total?: number |
|
} |
|
} |
|
siblings?: { |
|
rfilename: string |
|
}[] |
|
widgetData?: any |
|
modelId?: string |
|
isCompatible: boolean |
|
incompatibilityReason?: string |
|
supportedQuantizations: QuantizationType[] |
|
likes: number |
|
downloads: number |
|
readme?: string |
|
voices: string[] |
|
} |
|
|