react-native-executorch 0.4.3 → 0.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -19,12 +19,19 @@ export class LLMController {
19
19
  // User callbacks
20
20
 
21
21
  constructor({
22
+ tokenCallback,
22
23
  responseCallback,
23
24
  messageHistoryCallback,
24
25
  isReadyCallback,
25
26
  isGeneratingCallback,
26
27
  onDownloadProgressCallback
27
28
  }) {
29
+ if (responseCallback !== undefined) {
30
+ console.warn('Passing response callback is deprecated and will be removed in 0.6.0');
31
+ }
32
+ this.tokenCallback = token => {
33
+ tokenCallback?.(token);
34
+ };
28
35
  this.responseCallback = response => {
29
36
  this._response = response;
30
37
  responseCallback?.(response);
@@ -74,9 +81,10 @@ export class LLMController {
74
81
  await this.nativeModule.loadLLM(modelFileUri, tokenizerFileUri);
75
82
  this.isReadyCallback(true);
76
83
  this.onToken = this.nativeModule.onToken(data => {
77
- if (!data) {
84
+ if (!data || SPECIAL_TOKENS.EOS_TOKEN in this.tokenizerConfig && data === this.tokenizerConfig.eos_token || SPECIAL_TOKENS.PAD_TOKEN in this.tokenizerConfig && data === this.tokenizerConfig.pad_token) {
78
85
  return;
79
86
  }
87
+ this.tokenCallback(data);
80
88
  this.responseCallback(this._response + data);
81
89
  });
82
90
  } catch (e) {
@@ -84,6 +92,9 @@ export class LLMController {
84
92
  throw new Error(getError(e));
85
93
  }
86
94
  }
95
+ setTokenCallback(tokenCallback) {
96
+ this.tokenCallback = tokenCallback;
97
+ }
87
98
  configure({
88
99
  chatConfig,
89
100
  toolsConfig
@@ -146,11 +157,6 @@ export class LLMController {
146
157
  add_generation_prompt: true
147
158
  });
148
159
  await this.forward(renderedChat);
149
- if (!this._response) {
150
- return;
151
- }
152
- const cleanedResponse = this._response.replaceAll(this.tokenizerConfig.eos_token, '').replaceAll(this.tokenizerConfig.pad_token, '');
153
- this.responseCallback(cleanedResponse);
154
160
  }
155
161
  async sendMessage(message) {
156
162
  this.messageHistoryCallback([...this._messageHistory, {
@@ -163,7 +169,6 @@ export class LLMController {
163
169
  }, ...this._messageHistory.slice(-this.chatConfig.contextWindowLength)];
164
170
  await this.generate(messageHistoryWithPrompt, this.toolsConfig?.tools);
165
171
  if (!this.toolsConfig || this.toolsConfig.displayToolCalls) {
166
- this.responseCallback(this._response.replace(this.tokenizerConfig.eos_token, ''));
167
172
  this.messageHistoryCallback([...this._messageHistory, {
168
173
  content: this._response,
169
174
  role: 'assistant'
@@ -195,7 +200,7 @@ export class LLMController {
195
200
  throw Error("Tokenizer config doesn't include chat_template");
196
201
  }
197
202
  const template = new Template(tokenizerConfig.chat_template);
198
- const specialTokens = Object.fromEntries(SPECIAL_TOKENS.filter(key => key in tokenizerConfig).map(key => [key, tokenizerConfig[key]]));
203
+ const specialTokens = Object.fromEntries(Object.keys(SPECIAL_TOKENS).filter(key => key in tokenizerConfig).map(key => [key, tokenizerConfig[key]]));
199
204
  const result = template.render({
200
205
  messages,
201
206
  tools,
@@ -1 +1 @@
1
- {"version":3,"names":["ResourceFetcher","ETError","getError","Template","DEFAULT_CHAT_CONFIG","readAsStringAsync","SPECIAL_TOKENS","LLMNativeModule","parseToolCall","LLMController","chatConfig","onToken","_response","_isReady","_isGenerating","_messageHistory","constructor","responseCallback","messageHistoryCallback","isReadyCallback","isGeneratingCallback","onDownloadProgressCallback","response","messageHistory","isReady","isGenerating","nativeModule","load","modelSource","tokenizerSource","tokenizerConfigSource","initialMessageHistory","tokenizerFileUri","fetch","tokenizerConfigFileUri","tokenizerConfig","JSON","parse","modelFileUri","loadLLM","data","e","Error","configure","toolsConfig","delete","ModelGenerating","remove","releaseResources","forward","input","ModuleNotLoaded","interrupt","generate","messages","tools","length","role","console","warn","renderedChat","applyChatTemplate","tools_in_user_message","add_generation_prompt","cleanedResponse","replaceAll","eos_token","pad_token","sendMessage","message","content","messageHistoryWithPrompt","systemPrompt","slice","contextWindowLength","displayToolCalls","replace","toolCalls","toolCall","executeToolCallback","then","toolResponse","deleteMessage","index","newMessageHistory","templateFlags","chat_template","template","specialTokens","Object","fromEntries","filter","key","map","result","render"],"sourceRoot":"../../../src","sources":["controllers/LLMController.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ResourceFetcher","ETError","getError","Template","DEFAULT_CHAT_CONFIG","readAsStringAsync","SPECIAL_TOKENS","LLMNativeModule","parseToolCall","LLMController","chatConfig","onToken","_response","_isReady","_isGenerating","_messageHistory","constructor","tokenCallback","responseCallback","messageHistoryCallback","isReadyCallback","isGeneratingCallback","onDownloadProgressCallback","undefined","console","warn","token","response","messageHistory","isReady","isGenerating","nativeModule","load","modelSource","tokenizerSource","tokenizerConfigSource","initialMessageHistory","tokenizerFileUri","fetch","tokenizerConfigFileUri","tokenizerConfig","JSON","parse","modelFileUri","loadLLM","data","EOS_TOKEN","eos_token","PAD_TOKEN","pad_token","e","Error","setTokenCallback","configure","toolsConfig","delete","ModelGenerating","remove","releaseResources","forward","input","ModuleNotLoaded","interrupt","generate","messages","tools","length","role","renderedChat","applyChatTemplate","tools_in_user_message","add_generation_prompt","sendMessage","message","content","messageHistoryWithPrompt","systemPrompt","slice","contextWindowLength","displayToolCalls","toolCalls","toolCall","executeToolCallback","then","toolResponse","deleteMessage","index","newMessageHistory","templateFlags","chat_template","template","specialTokens","Object","fromEntries","keys","filter","key","map","result","render"],"sourceRoot":"../../../src","sources":["controllers/LLMController.ts"],"mappings":"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","ignoreList":[]}
@@ -217,7 +217,7 @@ export class SpeechToTextController {
217
217
  this.chunkWaveform();
218
218
  this.validateAndFixLastChunk();
219
219
  for (let chunkId = 0; chunkId < this.chunks.length; chunkId++) {
220
- const seq = await this.decodeChunk(this.chunks.at(chunkId));
220
+ const seq = await this.decodeChunk(this.chunks.at(chunkId), audioLanguage);
221
221
  // whole audio is inside one chunk, no processing required
222
222
  if (this.chunks.length === 1) {
223
223
  this.sequence = seq;
@@ -1 +1 @@
1
- {"version":3,"names":["HAMMING_DIST_THRESHOLD","MODEL_CONFIGS","SECOND","MODES","NUM_TOKENS_TO_TRIM","STREAMING_ACTION","SpeechToTextNativeModule","TokenizerModule","ResourceFetcher","longCommonInfPref","ETError","getError","SpeechToTextController","speechToTextNativeModule","sequence","isReady","isGenerating","chunks","seqs","prevSeq","waveform","numOfChunks","streaming","constructor","transcribeCallback","modelDownloadProgressCallback","isReadyCallback","isGeneratingCallback","onErrorCallback","overlapSeconds","windowSize","streamingConfig","decodedTranscribeCallback","seq","tokenIdsToText","error","Error","undefined","configureStreaming","loadModel","modelName","encoderSource","decoderSource","tokenizerSource","config","load","tokenizer","source","fetchMultipleResources","sources","encoder","decoder","e","loadModule","console","warn","chunkWaveform","Math","ceil","length","i","chunk","left","max","right","min","slice","push","resetState","expectedChunkLength","getStartingTokenIds","audioLanguage","bos","langTokenId","tokenToId","transcribeTokenId","noTimestampsTokenId","startingTokenIds","decodeChunk","prevSeqTokenIdx","encode","lastToken","at","eos","decode","handleOverlaps","maxInd","trimLeft","numOfTokensToTrim","idx","trimRight","trimSequences","numSpecialTokens","validateAndFixLastChunk","lastChunkLength","secondToLastChunkLength","tokenIds","transcribe","ModuleNotLoaded","ModelGenerating","isMultilingual","MultilingualConfiguration","chunkId","decodedText","streamingTranscribe","streamAction","START","DATA","StreamingNotStarted","STOP","MissingDataChunk","Number","encodings"],"sourceRoot":"../../../src","sources":["controllers/SpeechToTextController.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["HAMMING_DIST_THRESHOLD","MODEL_CONFIGS","SECOND","MODES","NUM_TOKENS_TO_TRIM","STREAMING_ACTION","SpeechToTextNativeModule","TokenizerModule","ResourceFetcher","longCommonInfPref","ETError","getError","SpeechToTextController","speechToTextNativeModule","sequence","isReady","isGenerating","chunks","seqs","prevSeq","waveform","numOfChunks","streaming","constructor","transcribeCallback","modelDownloadProgressCallback","isReadyCallback","isGeneratingCallback","onErrorCallback","overlapSeconds","windowSize","streamingConfig","decodedTranscribeCallback","seq","tokenIdsToText","error","Error","undefined","configureStreaming","loadModel","modelName","encoderSource","decoderSource","tokenizerSource","config","load","tokenizer","source","fetchMultipleResources","sources","encoder","decoder","e","loadModule","console","warn","chunkWaveform","Math","ceil","length","i","chunk","left","max","right","min","slice","push","resetState","expectedChunkLength","getStartingTokenIds","audioLanguage","bos","langTokenId","tokenToId","transcribeTokenId","noTimestampsTokenId","startingTokenIds","decodeChunk","prevSeqTokenIdx","encode","lastToken","at","eos","decode","handleOverlaps","maxInd","trimLeft","numOfTokensToTrim","idx","trimRight","trimSequences","numSpecialTokens","validateAndFixLastChunk","lastChunkLength","secondToLastChunkLength","tokenIds","transcribe","ModuleNotLoaded","ModelGenerating","isMultilingual","MultilingualConfiguration","chunkId","decodedText","streamingTranscribe","streamAction","START","DATA","StreamingNotStarted","STOP","MissingDataChunk","Number","encodings"],"sourceRoot":"../../../src","sources":["controllers/SpeechToTextController.ts"],"mappings":"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","ignoreList":[]}
@@ -4,7 +4,7 @@ import { useCallback, useEffect, useMemo, useState } from 'react';
4
4
  import { LLMController } from '../../controllers/LLMController';
5
5
 
6
6
  /*
7
- Hook version of LLMController
7
+ Hook version of LLMModule
8
8
  */
9
9
  export const useLLM = ({
10
10
  modelSource,
@@ -12,19 +12,24 @@ export const useLLM = ({
12
12
  tokenizerConfigSource,
13
13
  preventLoad = false
14
14
  }) => {
15
+ const [token, setToken] = useState('');
15
16
  const [response, setResponse] = useState('');
16
17
  const [messageHistory, setMessageHistory] = useState([]);
17
18
  const [isReady, setIsReady] = useState(false);
18
19
  const [isGenerating, setIsGenerating] = useState(false);
19
20
  const [downloadProgress, setDownloadProgress] = useState(0);
20
21
  const [error, setError] = useState(null);
22
+ const tokenCallback = useCallback(newToken => {
23
+ setToken(newToken);
24
+ setResponse(prevResponse => prevResponse + newToken);
25
+ }, []);
21
26
  const model = useMemo(() => new LLMController({
22
- responseCallback: setResponse,
27
+ tokenCallback: tokenCallback,
23
28
  messageHistoryCallback: setMessageHistory,
24
29
  isReadyCallback: setIsReady,
25
30
  isGeneratingCallback: setIsGenerating,
26
31
  onDownloadProgressCallback: setDownloadProgress
27
- }), []);
32
+ }), [tokenCallback]);
28
33
  useEffect(() => {
29
34
  setDownloadProgress(0);
30
35
  setError(null);
@@ -54,13 +59,20 @@ export const useLLM = ({
54
59
  chatConfig,
55
60
  toolsConfig
56
61
  }), [model]);
57
- const generate = useCallback((messages, tools) => model.generate(messages, tools), [model]);
58
- const sendMessage = useCallback(message => model.sendMessage(message), [model]);
62
+ const generate = useCallback((messages, tools) => {
63
+ setResponse('');
64
+ return model.generate(messages, tools);
65
+ }, [model]);
66
+ const sendMessage = useCallback(message => {
67
+ setResponse('');
68
+ return model.sendMessage(message);
69
+ }, [model]);
59
70
  const deleteMessage = useCallback(index => model.deleteMessage(index), [model]);
60
71
  const interrupt = useCallback(() => model.interrupt(), [model]);
61
72
  return {
62
73
  messageHistory,
63
74
  response,
75
+ token,
64
76
  isReady,
65
77
  isGenerating,
66
78
  downloadProgress,
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useState","LLMController","useLLM","modelSource","tokenizerSource","tokenizerConfigSource","preventLoad","response","setResponse","messageHistory","setMessageHistory","isReady","setIsReady","isGenerating","setIsGenerating","downloadProgress","setDownloadProgress","error","setError","model","responseCallback","messageHistoryCallback","isReadyCallback","isGeneratingCallback","onDownloadProgressCallback","load","e","delete","configure","chatConfig","toolsConfig","generate","messages","tools","sendMessage","message","deleteMessage","index","interrupt"],"sourceRoot":"../../../../src","sources":["hooks/natural_language_processing/useLLM.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useState","LLMController","useLLM","modelSource","tokenizerSource","tokenizerConfigSource","preventLoad","token","setToken","response","setResponse","messageHistory","setMessageHistory","isReady","setIsReady","isGenerating","setIsGenerating","downloadProgress","setDownloadProgress","error","setError","tokenCallback","newToken","prevResponse","model","messageHistoryCallback","isReadyCallback","isGeneratingCallback","onDownloadProgressCallback","load","e","delete","configure","chatConfig","toolsConfig","generate","messages","tools","sendMessage","message","deleteMessage","index","interrupt"],"sourceRoot":"../../../../src","sources":["hooks/natural_language_processing/useLLM.ts"],"mappings":"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","ignoreList":[]}
@@ -7,10 +7,12 @@ export class LLMModule {
7
7
  tokenizerSource,
8
8
  tokenizerConfigSource,
9
9
  onDownloadProgressCallback,
10
+ tokenCallback,
10
11
  responseCallback,
11
12
  messageHistoryCallback
12
13
  }) {
13
14
  this.controller = new LLMController({
15
+ tokenCallback: tokenCallback,
14
16
  responseCallback: responseCallback,
15
17
  messageHistoryCallback: messageHistoryCallback,
16
18
  onDownloadProgressCallback: onDownloadProgressCallback
@@ -21,6 +23,11 @@ export class LLMModule {
21
23
  tokenizerConfigSource
22
24
  });
23
25
  }
26
+ static setTokenCallback({
27
+ tokenCallback
28
+ }) {
29
+ this.controller.setTokenCallback(tokenCallback);
30
+ }
24
31
  static configure({
25
32
  chatConfig,
26
33
  toolsConfig
@@ -1 +1 @@
1
- {"version":3,"names":["LLMController","LLMModule","load","modelSource","tokenizerSource","tokenizerConfigSource","onDownloadProgressCallback","responseCallback","messageHistoryCallback","controller","configure","chatConfig","toolsConfig","forward","input","response","generate","messages","tools","sendMessage","message","messageHistory","deleteMessage","index","interrupt","delete"],"sourceRoot":"../../../../src","sources":["modules/natural_language_processing/LLMModule.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,iCAAiC;AAI/D,OAAO,MAAMC,SAAS,CAAC;EAGrB,aAAaC,IAAIA,CAAC;IAChBC,WAAW;IACXC,eAAe;IACfC,qBAAqB;IACrBC,0BAA0B;IAC1BC,gBAAgB;IAChBC;EAQF,CAAC,EAAE;IACD,IAAI,CAACC,UAAU,GAAG,IAAIT,aAAa,CAAC;MAClCO,gBAAgB,EAAEA,gBAAgB;MAClCC,sBAAsB,EAAEA,sBAAsB;MAC9CF,0BAA0B,EAAEA;IAC9B,CAAC,CAAC;IACF,MAAM,IAAI,CAACG,UAAU,CAACP,IAAI,CAAC;MACzBC,WAAW;MACXC,eAAe;MACfC;IACF,CAAC,CAAC;EACJ;EAEA,OAAOK,SAASA,CAAC;IACfC,UAAU;IACVC;EAIF,CAAC,EAAE;IACD,IAAI,CAACH,UAAU,CAACC,SAAS,CAAC;MAAEC,UAAU;MAAEC;IAAY,CAAC,CAAC;EACxD;EAEA,aAAaC,OAAOA,CAACC,KAAa,EAAmB;IACnD,MAAM,IAAI,CAACL,UAAU,CAACI,OAAO,CAACC,KAAK,CAAC;IACpC,OAAO,IAAI,CAACL,UAAU,CAACM,QAAQ;EACjC;EAEA,aAAaC,QAAQA,CACnBC,QAAmB,EACnBC,KAAiB,EACA;IACjB,MAAM,IAAI,CAACT,UAAU,CAACO,QAAQ,CAACC,QAAQ,EAAEC,KAAK,CAAC;IAC/C,OAAO,IAAI,CAACT,UAAU,CAACM,QAAQ;EACjC;EAEA,aAAaI,WAAWA,CAACC,OAAe,EAAsB;IAC5D,MAAM,IAAI,CAACX,UAAU,CAACU,WAAW,CAACC,OAAO,CAAC;IAC1C,OAAO,IAAI,CAACX,UAAU,CAACY,cAAc;EACvC;EAEA,aAAaC,aAAaA,CAACC,KAAa,EAAsB;IAC5D,MAAM,IAAI,CAACd,UAAU,CAACa,aAAa,CAACC,KAAK,CAAC;IAC1C,OAAO,IAAI,CAACd,UAAU,CAACY,cAAc;EACvC;EAEA,OAAOG,SAASA,CAAA,EAAG;IACjB,IAAI,CAACf,UAAU,CAACe,SAAS,CAAC,CAAC;EAC7B;EAEA,OAAOC,MAAMA,CAAA,EAAG;IACd,IAAI,CAAChB,UAAU,CAACgB,MAAM,CAAC,CAAC;EAC1B;AACF","ignoreList":[]}
1
+ {"version":3,"names":["LLMController","LLMModule","load","modelSource","tokenizerSource","tokenizerConfigSource","onDownloadProgressCallback","tokenCallback","responseCallback","messageHistoryCallback","controller","setTokenCallback","configure","chatConfig","toolsConfig","forward","input","response","generate","messages","tools","sendMessage","message","messageHistory","deleteMessage","index","interrupt","delete"],"sourceRoot":"../../../../src","sources":["modules/natural_language_processing/LLMModule.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,iCAAiC;AAI/D,OAAO,MAAMC,SAAS,CAAC;EAGrB,aAAaC,IAAIA,CAAC;IAChBC,WAAW;IACXC,eAAe;IACfC,qBAAqB;IACrBC,0BAA0B;IAC1BC,aAAa;IACbC,gBAAgB;IAChBC;EASF,CAAC,EAAE;IACD,IAAI,CAACC,UAAU,GAAG,IAAIV,aAAa,CAAC;MAClCO,aAAa,EAAEA,aAAa;MAC5BC,gBAAgB,EAAEA,gBAAgB;MAClCC,sBAAsB,EAAEA,sBAAsB;MAC9CH,0BAA0B,EAAEA;IAC9B,CAAC,CAAC;IACF,MAAM,IAAI,CAACI,UAAU,CAACR,IAAI,CAAC;MACzBC,WAAW;MACXC,eAAe;MACfC;IACF,CAAC,CAAC;EACJ;EAEA,OAAOM,gBAAgBA,CAAC;IACtBJ;EAGF,CAAC,EAAE;IACD,IAAI,CAACG,UAAU,CAACC,gBAAgB,CAACJ,aAAa,CAAC;EACjD;EAEA,OAAOK,SAASA,CAAC;IACfC,UAAU;IACVC;EAIF,CAAC,EAAE;IACD,IAAI,CAACJ,UAAU,CAACE,SAAS,CAAC;MAAEC,UAAU;MAAEC;IAAY,CAAC,CAAC;EACxD;EAEA,aAAaC,OAAOA,CAACC,KAAa,EAAmB;IACnD,MAAM,IAAI,CAACN,UAAU,CAACK,OAAO,CAACC,KAAK,CAAC;IACpC,OAAO,IAAI,CAACN,UAAU,CAACO,QAAQ;EACjC;EAEA,aAAaC,QAAQA,CACnBC,QAAmB,EACnBC,KAAiB,EACA;IACjB,MAAM,IAAI,CAACV,UAAU,CAACQ,QAAQ,CAACC,QAAQ,EAAEC,KAAK,CAAC;IAC/C,OAAO,IAAI,CAACV,UAAU,CAACO,QAAQ;EACjC;EAEA,aAAaI,WAAWA,CAACC,OAAe,EAAsB;IAC5D,MAAM,IAAI,CAACZ,UAAU,CAACW,WAAW,CAACC,OAAO,CAAC;IAC1C,OAAO,IAAI,CAACZ,UAAU,CAACa,cAAc;EACvC;EAEA,aAAaC,aAAaA,CAACC,KAAa,EAAsB;IAC5D,MAAM,IAAI,CAACf,UAAU,CAACc,aAAa,CAACC,KAAK,CAAC;IAC1C,OAAO,IAAI,CAACf,UAAU,CAACa,cAAc;EACvC;EAEA,OAAOG,SAASA,CAAA,EAAG;IACjB,IAAI,CAAChB,UAAU,CAACgB,SAAS,CAAC,CAAC;EAC7B;EAEA,OAAOC,MAAMA,CAAA,EAAG;IACd,IAAI,CAACjB,UAAU,CAACiB,MAAM,CAAC,CAAC;EAC1B;AACF","ignoreList":[]}
@@ -3,5 +3,13 @@
3
3
  // usually tool is represented with dictionary (Object), but fields depend on the model
4
4
  // unfortunately there's no one standard so it's hard to type it better
5
5
 
6
- export const SPECIAL_TOKENS = ['bos_token', 'eos_token', 'unk_token', 'sep_token', 'pad_token', 'cls_token', 'mask_token'];
6
+ export const SPECIAL_TOKENS = {
7
+ BOS_TOKEN: 'bos_token',
8
+ EOS_TOKEN: 'eos_token',
9
+ UNK_TOKEN: 'unk_token',
10
+ SEP_TOKEN: 'sep_token',
11
+ PAD_TOKEN: 'pad_token',
12
+ CLS_TOKEN: 'cls_token',
13
+ MASK_TOKEN: 'mask_token'
14
+ };
7
15
  //# sourceMappingURL=llm.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["SPECIAL_TOKENS"],"sourceRoot":"../../../src","sources":["types/llm.ts"],"mappings":";;AAgCA;AACA;;AAeA,OAAO,MAAMA,cAAc,GAAG,CAC5B,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,CACb","ignoreList":[]}
1
+ {"version":3,"names":["SPECIAL_TOKENS","BOS_TOKEN","EOS_TOKEN","UNK_TOKEN","SEP_TOKEN","PAD_TOKEN","CLS_TOKEN","MASK_TOKEN"],"sourceRoot":"../../../src","sources":["types/llm.ts"],"mappings":";;AAiCA;AACA;;AAeA,OAAO,MAAMA,cAAc,GAAG;EAC5BC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,UAAU,EAAE;AACd,CAAC","ignoreList":[]}
@@ -10,12 +10,14 @@ export declare class LLMController {
10
10
  private _isReady;
11
11
  private _isGenerating;
12
12
  private _messageHistory;
13
+ private tokenCallback;
13
14
  private responseCallback;
14
15
  private messageHistoryCallback;
15
16
  private isReadyCallback;
16
17
  private isGeneratingCallback;
17
18
  private onDownloadProgressCallback;
18
- constructor({ responseCallback, messageHistoryCallback, isReadyCallback, isGeneratingCallback, onDownloadProgressCallback, }: {
19
+ constructor({ tokenCallback, responseCallback, messageHistoryCallback, isReadyCallback, isGeneratingCallback, onDownloadProgressCallback, }: {
20
+ tokenCallback?: (token: string) => void;
19
21
  responseCallback?: (response: string) => void;
20
22
  messageHistoryCallback?: (messageHistory: Message[]) => void;
21
23
  isReadyCallback?: (isReady: boolean) => void;
@@ -31,6 +33,7 @@ export declare class LLMController {
31
33
  tokenizerSource: ResourceSource;
32
34
  tokenizerConfigSource: ResourceSource;
33
35
  }): Promise<void>;
36
+ setTokenCallback(tokenCallback: (token: string) => void): void;
34
37
  configure({ chatConfig, toolsConfig, }: {
35
38
  chatConfig?: Partial<ChatConfig>;
36
39
  toolsConfig?: ToolsConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"LLMController.d.ts","sourceRoot":"","sources":["../../../src/controllers/LLMController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMjD,OAAO,EACL,UAAU,EACV,OAAO,EACP,OAAO,EAEP,WAAW,EACZ,MAAM,cAAc,CAAC;AAItB,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAiB;IAGxC,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,sBAAsB,CAAsC;IACpE,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,0BAA0B,CAEpB;gBAEF,EACV,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,GAC3B,EAAE;QACD,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC9C,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QAC7D,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;QAC7C,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,0BAA0B,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;KACjE;IAuBD,IAAW,QAAQ,WAElB;IACD,IAAW,OAAO,YAEjB;IACD,IAAW,YAAY,YAEtB;IACD,IAAW,cAAc,cAExB;IAEY,IAAI,CAAC,EAChB,WAAW,EACX,eAAe,EACf,qBAAqB,GACtB,EAAE;QACD,WAAW,EAAE,cAAc,CAAC;QAC5B,eAAe,EAAE,cAAc,CAAC;QAChC,qBAAqB,EAAE,cAAc,CAAC;KACvC;IAmCM,SAAS,CAAC,EACf,UAAU,EACV,WAAW,GACZ,EAAE;QACD,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B;IAUM,MAAM;IAcA,OAAO,CAAC,KAAK,EAAE,MAAM;IAkB3B,SAAS;IAIH,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE;IAiC/C,WAAW,CAAC,OAAO,EAAE,MAAM;IA0CjC,aAAa,CAAC,KAAK,EAAE,MAAM;IAQlC,OAAO,CAAC,iBAAiB;CA0B1B"}
1
+ {"version":3,"file":"LLMController.d.ts","sourceRoot":"","sources":["../../../src/controllers/LLMController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAMjD,OAAO,EACL,UAAU,EACV,OAAO,EACP,OAAO,EAEP,WAAW,EACZ,MAAM,cAAc,CAAC;AAItB,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,eAAe,CAAM;IAC7B,OAAO,CAAC,OAAO,CAAkC;IACjD,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAiB;IAGxC,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,gBAAgB,CAA6B;IACrD,OAAO,CAAC,sBAAsB,CAAsC;IACpE,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,0BAA0B,CAEpB;gBAEF,EACV,aAAa,EACb,gBAAgB,EAChB,sBAAsB,EACtB,eAAe,EACf,oBAAoB,EACpB,0BAA0B,GAC3B,EAAE;QACD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QACxC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC9C,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;QAC7D,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;QAC7C,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,0BAA0B,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;KACjE;IA+BD,IAAW,QAAQ,WAElB;IACD,IAAW,OAAO,YAEjB;IACD,IAAW,YAAY,YAEtB;IACD,IAAW,cAAc,cAExB;IAEY,IAAI,CAAC,EAChB,WAAW,EACX,eAAe,EACf,qBAAqB,GACtB,EAAE;QACD,WAAW,EAAE,cAAc,CAAC;QAC5B,eAAe,EAAE,cAAc,CAAC;QAChC,qBAAqB,EAAE,cAAc,CAAC;KACvC;IA2CM,gBAAgB,CAAC,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;IAIvD,SAAS,CAAC,EACf,UAAU,EACV,WAAW,GACZ,EAAE;QACD,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B;IAUM,MAAM;IAcA,OAAO,CAAC,KAAK,EAAE,MAAM;IAkB3B,SAAS;IAIH,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE;IAwB/C,WAAW,CAAC,OAAO,EAAE,MAAM;IAuCjC,aAAa,CAAC,KAAK,EAAE,MAAM;IAQlC,OAAO,CAAC,iBAAiB;CAyB1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpeechToTextController.d.ts","sourceRoot":"","sources":["../../../src/controllers/SpeechToTextController.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,EAEL,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAe,MAAM,cAAc,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,wBAAwB,CAA4B;IAErD,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,OAAO,UAAS;IAChB,YAAY,UAAS;IAE5B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,yBAAyB,CAA+B;IAChE,OAAO,CAAC,6BAA6B,CAEvB;IACd,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,MAAM,CAAe;gBAEjB,EACV,kBAAkB,EAClB,6BAA6B,EAC7B,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,UAAU,EACV,eAAe,GAChB,EAAE;QACD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/C,6BAA6B,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;QACnE,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;QAC7C,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC;QACrD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,OAAO,KAAK,CAAC;KACtC;IA2BY,SAAS,CACpB,SAAS,EAAE,eAAe,EAC1B,aAAa,CAAC,EAAE,cAAc,EAC9B,aAAa,CAAC,EAAE,cAAc,EAC9B,eAAe,CAAC,EAAE,cAAc;IA0C3B,kBAAkB,CACvB,cAAc,CAAC,EAAE,MAAM,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,OAAO,KAAK;IAqBtC,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,mBAAmB;YAOb,mBAAmB;YAsBnB,WAAW;YAkCX,cAAc;IAW5B,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,SAAS;YASH,aAAa;IAQ3B,OAAO,CAAC,uBAAuB;YAcjB,cAAc;IAWf,UAAU,CACrB,QAAQ,EAAE,MAAM,EAAE,EAClB,aAAa,CAAC,EAAE,oBAAoB,GACnC,OAAO,CAAC,MAAM,CAAC;IAkDL,mBAAmB,CAC9B,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,aAAa,CAAC,EAAE,oBAAoB,GACnC,OAAO,CAAC,MAAM,CAAC;IAqFL,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE;CAGxD"}
1
+ {"version":3,"file":"SpeechToTextController.d.ts","sourceRoot":"","sources":["../../../src/controllers/SpeechToTextController.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,EAEL,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAe,MAAM,cAAc,CAAC;AAG5D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGpD,qBAAa,sBAAsB;IACjC,OAAO,CAAC,wBAAwB,CAA4B;IAErD,QAAQ,EAAE,MAAM,EAAE,CAAM;IACxB,OAAO,UAAS;IAChB,YAAY,UAAS;IAE5B,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,yBAAyB,CAA+B;IAChE,OAAO,CAAC,6BAA6B,CAEvB;IACd,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,MAAM,CAAe;gBAEjB,EACV,kBAAkB,EAClB,6BAA6B,EAC7B,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,UAAU,EACV,eAAe,GAChB,EAAE;QACD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC/C,6BAA6B,CAAC,EAAE,CAAC,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;QACnE,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;QAC7C,oBAAoB,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,KAAK,IAAI,CAAC;QACvD,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,KAAK,IAAI,CAAC;QACrD,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,OAAO,KAAK,CAAC;KACtC;IA2BY,SAAS,CACpB,SAAS,EAAE,eAAe,EAC1B,aAAa,CAAC,EAAE,cAAc,EAC9B,aAAa,CAAC,EAAE,cAAc,EAC9B,eAAe,CAAC,EAAE,cAAc;IA0C3B,kBAAkB,CACvB,cAAc,CAAC,EAAE,MAAM,EACvB,UAAU,CAAC,EAAE,MAAM,EACnB,eAAe,CAAC,EAAE,MAAM,OAAO,KAAK;IAqBtC,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,mBAAmB;YAOb,mBAAmB;YAsBnB,WAAW;YAkCX,cAAc;IAW5B,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,SAAS;YASH,aAAa;IAQ3B,OAAO,CAAC,uBAAuB;YAcjB,cAAc;IAWf,UAAU,CACrB,QAAQ,EAAE,MAAM,EAAE,EAClB,aAAa,CAAC,EAAE,oBAAoB,GACnC,OAAO,CAAC,MAAM,CAAC;IAqDL,mBAAmB,CAC9B,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,EACnB,aAAa,CAAC,EAAE,oBAAoB,GACnC,OAAO,CAAC,MAAM,CAAC;IAqFL,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE;IAIzB,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE;CAGxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useLLM.d.ts","sourceRoot":"","sources":["../../../../src/hooks/natural_language_processing/useLLM.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAGL,OAAO,EAGR,MAAM,iBAAiB,CAAC;AAMzB,eAAO,MAAM,MAAM,GAAI,uEAKpB;IACD,WAAW,EAAE,cAAc,CAAC;IAC5B,eAAe,EAAE,cAAc,CAAC;IAChC,qBAAqB,EAAE,cAAc,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,KAAG,OAoFH,CAAC"}
1
+ {"version":3,"file":"useLLM.d.ts","sourceRoot":"","sources":["../../../../src/hooks/natural_language_processing/useLLM.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAGL,OAAO,EAGR,MAAM,iBAAiB,CAAC;AAMzB,eAAO,MAAM,MAAM,GAAI,uEAKpB;IACD,WAAW,EAAE,cAAc,CAAC;IAC5B,eAAe,EAAE,cAAc,CAAC;IAChC,qBAAqB,EAAE,cAAc,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,KAAG,OAiGH,CAAC"}
@@ -3,14 +3,18 @@ import { ResourceSource } from '../../types/common';
3
3
  import { ChatConfig, LLMTool, Message, ToolsConfig } from '../../types/llm';
4
4
  export declare class LLMModule {
5
5
  static controller: LLMController;
6
- static load({ modelSource, tokenizerSource, tokenizerConfigSource, onDownloadProgressCallback, responseCallback, messageHistoryCallback, }: {
6
+ static load({ modelSource, tokenizerSource, tokenizerConfigSource, onDownloadProgressCallback, tokenCallback, responseCallback, messageHistoryCallback, }: {
7
7
  modelSource: ResourceSource;
8
8
  tokenizerSource: ResourceSource;
9
9
  tokenizerConfigSource: ResourceSource;
10
10
  onDownloadProgressCallback?: (_downloadProgress: number) => void;
11
+ tokenCallback?: (token: string) => void;
11
12
  responseCallback?: (response: string) => void;
12
13
  messageHistoryCallback?: (messageHistory: Message[]) => void;
13
14
  }): Promise<void>;
15
+ static setTokenCallback({ tokenCallback, }: {
16
+ tokenCallback: (token: string) => void;
17
+ }): void;
14
18
  static configure({ chatConfig, toolsConfig, }: {
15
19
  chatConfig?: Partial<ChatConfig>;
16
20
  toolsConfig?: ToolsConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"LLMModule.d.ts","sourceRoot":"","sources":["../../../../src/modules/natural_language_processing/LLMModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE5E,qBAAa,SAAS;IACpB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC;WAEpB,IAAI,CAAC,EAChB,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,0BAA0B,EAC1B,gBAAgB,EAChB,sBAAsB,GACvB,EAAE;QACD,WAAW,EAAE,cAAc,CAAC;QAC5B,eAAe,EAAE,cAAc,CAAC;QAChC,qBAAqB,EAAE,cAAc,CAAC;QACtC,0BAA0B,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,IAAI,CAAC;QACjE,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC9C,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;KAC9D;IAaD,MAAM,CAAC,SAAS,CAAC,EACf,UAAU,EACV,WAAW,GACZ,EAAE;QACD,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B;WAIY,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAKvC,QAAQ,CACnB,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,CAAC,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC,MAAM,CAAC;WAKL,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAKhD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAK7D,MAAM,CAAC,SAAS;IAIhB,MAAM,CAAC,MAAM;CAGd"}
1
+ {"version":3,"file":"LLMModule.d.ts","sourceRoot":"","sources":["../../../../src/modules/natural_language_processing/LLMModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE5E,qBAAa,SAAS;IACpB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC;WAEpB,IAAI,CAAC,EAChB,WAAW,EACX,eAAe,EACf,qBAAqB,EACrB,0BAA0B,EAC1B,aAAa,EACb,gBAAgB,EAChB,sBAAsB,GACvB,EAAE;QACD,WAAW,EAAE,cAAc,CAAC;QAC5B,eAAe,EAAE,cAAc,CAAC;QAChC,qBAAqB,EAAE,cAAc,CAAC;QACtC,0BAA0B,CAAC,EAAE,CAAC,iBAAiB,EAAE,MAAM,KAAK,IAAI,CAAC;QACjE,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;QACxC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;QAC9C,sBAAsB,CAAC,EAAE,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;KAC9D;IAcD,MAAM,CAAC,gBAAgB,CAAC,EACtB,aAAa,GACd,EAAE;QACD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KACxC;IAID,MAAM,CAAC,SAAS,CAAC,EACf,UAAU,EACV,WAAW,GACZ,EAAE;QACD,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B;WAIY,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAKvC,QAAQ,CACnB,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,CAAC,EAAE,OAAO,EAAE,GAChB,OAAO,CAAC,MAAM,CAAC;WAKL,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;WAKhD,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAK7D,MAAM,CAAC,SAAS;IAIhB,MAAM,CAAC,MAAM;CAGd"}
@@ -1,6 +1,7 @@
1
1
  export interface LLMType {
2
2
  messageHistory: Message[];
3
3
  response: string;
4
+ token: string;
4
5
  isReady: boolean;
5
6
  isGenerating: boolean;
6
7
  downloadProgress: number;
@@ -34,5 +35,13 @@ export interface ToolsConfig {
34
35
  executeToolCallback: (call: ToolCall) => Promise<string | null>;
35
36
  displayToolCalls?: boolean;
36
37
  }
37
- export declare const SPECIAL_TOKENS: string[];
38
+ export declare const SPECIAL_TOKENS: {
39
+ BOS_TOKEN: string;
40
+ EOS_TOKEN: string;
41
+ UNK_TOKEN: string;
42
+ SEP_TOKEN: string;
43
+ PAD_TOKEN: string;
44
+ CLS_TOKEN: string;
45
+ MASK_TOKEN: string;
46
+ };
38
47
  //# sourceMappingURL=llm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../../src/types/llm.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,EACV,UAAU,EACV,WAAW,GACZ,EAAE;QACD,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,KAAK,IAAI,CAAC;IACX,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,UAAU;IACzB,qBAAqB,EAAE,OAAO,EAAE,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,mBAAmB,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,UAQ1B,CAAC"}
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../../src/types/llm.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,OAAO;IACtB,cAAc,EAAE,OAAO,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,CAAC,EACV,UAAU,EACV,WAAW,GACZ,EAAE;QACD,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QACjC,WAAW,CAAC,EAAE,WAAW,CAAC;KAC3B,KAAK,IAAI,CAAC;IACX,QAAQ,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1D,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,UAAU;IACzB,qBAAqB,EAAE,OAAO,EAAE,CAAC;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,OAAO,EAAE,CAAC;IACjB,mBAAmB,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc;;;;;;;;CAQ1B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-executorch",
3
- "version": "0.4.3",
3
+ "version": "0.4.5",
4
4
  "description": "An easy way to run AI models in react native with ExecuTorch",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./lib/commonjs/index.js",
@@ -27,6 +27,7 @@ export class LLMController {
27
27
  private _messageHistory: Message[] = [];
28
28
 
29
29
  // User callbacks
30
+ private tokenCallback: (token: string) => void;
30
31
  private responseCallback: (response: string) => void;
31
32
  private messageHistoryCallback: (messageHistory: Message[]) => void;
32
33
  private isReadyCallback: (isReady: boolean) => void;
@@ -36,18 +37,28 @@ export class LLMController {
36
37
  | undefined;
37
38
 
38
39
  constructor({
40
+ tokenCallback,
39
41
  responseCallback,
40
42
  messageHistoryCallback,
41
43
  isReadyCallback,
42
44
  isGeneratingCallback,
43
45
  onDownloadProgressCallback,
44
46
  }: {
47
+ tokenCallback?: (token: string) => void;
45
48
  responseCallback?: (response: string) => void;
46
49
  messageHistoryCallback?: (messageHistory: Message[]) => void;
47
50
  isReadyCallback?: (isReady: boolean) => void;
48
51
  isGeneratingCallback?: (isGenerating: boolean) => void;
49
52
  onDownloadProgressCallback?: (downloadProgress: number) => void;
50
53
  }) {
54
+ if (responseCallback !== undefined) {
55
+ console.warn(
56
+ 'Passing response callback is deprecated and will be removed in 0.6.0'
57
+ );
58
+ }
59
+ this.tokenCallback = (token) => {
60
+ tokenCallback?.(token);
61
+ };
51
62
  this.responseCallback = (response) => {
52
63
  this._response = response;
53
64
  responseCallback?.(response);
@@ -114,10 +125,18 @@ export class LLMController {
114
125
 
115
126
  await this.nativeModule.loadLLM(modelFileUri, tokenizerFileUri);
116
127
  this.isReadyCallback(true);
117
- this.onToken = this.nativeModule.onToken((data: string | undefined) => {
118
- if (!data) {
128
+ this.onToken = this.nativeModule.onToken((data: string) => {
129
+ if (
130
+ !data ||
131
+ (SPECIAL_TOKENS.EOS_TOKEN in this.tokenizerConfig &&
132
+ data === this.tokenizerConfig.eos_token) ||
133
+ (SPECIAL_TOKENS.PAD_TOKEN in this.tokenizerConfig &&
134
+ data === this.tokenizerConfig.pad_token)
135
+ ) {
119
136
  return;
120
137
  }
138
+
139
+ this.tokenCallback(data);
121
140
  this.responseCallback(this._response + data);
122
141
  });
123
142
  } catch (e) {
@@ -126,6 +145,10 @@ export class LLMController {
126
145
  }
127
146
  }
128
147
 
148
+ public setTokenCallback(tokenCallback: (token: string) => void) {
149
+ this.tokenCallback = tokenCallback;
150
+ }
151
+
129
152
  public configure({
130
153
  chatConfig,
131
154
  toolsConfig,
@@ -200,15 +223,6 @@ export class LLMController {
200
223
  );
201
224
 
202
225
  await this.forward(renderedChat);
203
-
204
- if (!this._response) {
205
- return;
206
- }
207
-
208
- const cleanedResponse = this._response
209
- .replaceAll(this.tokenizerConfig.eos_token, '')
210
- .replaceAll(this.tokenizerConfig.pad_token, '');
211
- this.responseCallback(cleanedResponse);
212
226
  }
213
227
 
214
228
  public async sendMessage(message: string) {
@@ -225,9 +239,6 @@ export class LLMController {
225
239
  await this.generate(messageHistoryWithPrompt, this.toolsConfig?.tools);
226
240
 
227
241
  if (!this.toolsConfig || this.toolsConfig.displayToolCalls) {
228
- this.responseCallback(
229
- this._response.replace(this.tokenizerConfig.eos_token, '')
230
- );
231
242
  this.messageHistoryCallback([
232
243
  ...this._messageHistory,
233
244
  { content: this._response, role: 'assistant' },
@@ -273,10 +284,9 @@ export class LLMController {
273
284
  const template = new Template(tokenizerConfig.chat_template);
274
285
 
275
286
  const specialTokens = Object.fromEntries(
276
- SPECIAL_TOKENS.filter((key) => key in tokenizerConfig).map((key) => [
277
- key,
278
- tokenizerConfig[key],
279
- ])
287
+ Object.keys(SPECIAL_TOKENS)
288
+ .filter((key) => key in tokenizerConfig)
289
+ .map((key) => [key, tokenizerConfig[key]])
280
290
  );
281
291
 
282
292
  const result = template.render({
@@ -327,7 +327,10 @@ export class SpeechToTextController {
327
327
  this.validateAndFixLastChunk();
328
328
 
329
329
  for (let chunkId = 0; chunkId < this.chunks.length; chunkId++) {
330
- const seq = await this.decodeChunk(this.chunks!.at(chunkId)!);
330
+ const seq = await this.decodeChunk(
331
+ this.chunks!.at(chunkId)!,
332
+ audioLanguage
333
+ );
331
334
  // whole audio is inside one chunk, no processing required
332
335
  if (this.chunks.length === 1) {
333
336
  this.sequence = seq;
@@ -10,7 +10,7 @@ import {
10
10
  import { LLMController } from '../../controllers/LLMController';
11
11
 
12
12
  /*
13
- Hook version of LLMController
13
+ Hook version of LLMModule
14
14
  */
15
15
  export const useLLM = ({
16
16
  modelSource,
@@ -23,23 +23,29 @@ export const useLLM = ({
23
23
  tokenizerConfigSource: ResourceSource;
24
24
  preventLoad?: boolean;
25
25
  }): LLMType => {
26
- const [response, setResponse] = useState('');
26
+ const [token, setToken] = useState<string>('');
27
+ const [response, setResponse] = useState<string>('');
27
28
  const [messageHistory, setMessageHistory] = useState<Message[]>([]);
28
29
  const [isReady, setIsReady] = useState(false);
29
30
  const [isGenerating, setIsGenerating] = useState(false);
30
31
  const [downloadProgress, setDownloadProgress] = useState(0);
31
32
  const [error, setError] = useState<any>(null);
32
33
 
34
+ const tokenCallback = useCallback((newToken: string) => {
35
+ setToken(newToken);
36
+ setResponse((prevResponse) => prevResponse + newToken);
37
+ }, []);
38
+
33
39
  const model = useMemo(
34
40
  () =>
35
41
  new LLMController({
36
- responseCallback: setResponse,
42
+ tokenCallback: tokenCallback,
37
43
  messageHistoryCallback: setMessageHistory,
38
44
  isReadyCallback: setIsReady,
39
45
  isGeneratingCallback: setIsGenerating,
40
46
  onDownloadProgressCallback: setDownloadProgress,
41
47
  }),
42
- []
48
+ [tokenCallback]
43
49
  );
44
50
 
45
51
  useEffect(() => {
@@ -78,12 +84,18 @@ export const useLLM = ({
78
84
  );
79
85
 
80
86
  const generate = useCallback(
81
- (messages: Message[], tools?: LLMTool[]) => model.generate(messages, tools),
87
+ (messages: Message[], tools?: LLMTool[]) => {
88
+ setResponse('');
89
+ return model.generate(messages, tools);
90
+ },
82
91
  [model]
83
92
  );
84
93
 
85
94
  const sendMessage = useCallback(
86
- (message: string) => model.sendMessage(message),
95
+ (message: string) => {
96
+ setResponse('');
97
+ return model.sendMessage(message);
98
+ },
87
99
  [model]
88
100
  );
89
101
 
@@ -96,6 +108,7 @@ export const useLLM = ({
96
108
  return {
97
109
  messageHistory,
98
110
  response,
111
+ token,
99
112
  isReady,
100
113
  isGenerating,
101
114
  downloadProgress,
@@ -10,6 +10,7 @@ export class LLMModule {
10
10
  tokenizerSource,
11
11
  tokenizerConfigSource,
12
12
  onDownloadProgressCallback,
13
+ tokenCallback,
13
14
  responseCallback,
14
15
  messageHistoryCallback,
15
16
  }: {
@@ -17,10 +18,12 @@ export class LLMModule {
17
18
  tokenizerSource: ResourceSource;
18
19
  tokenizerConfigSource: ResourceSource;
19
20
  onDownloadProgressCallback?: (_downloadProgress: number) => void;
21
+ tokenCallback?: (token: string) => void;
20
22
  responseCallback?: (response: string) => void;
21
23
  messageHistoryCallback?: (messageHistory: Message[]) => void;
22
24
  }) {
23
25
  this.controller = new LLMController({
26
+ tokenCallback: tokenCallback,
24
27
  responseCallback: responseCallback,
25
28
  messageHistoryCallback: messageHistoryCallback,
26
29
  onDownloadProgressCallback: onDownloadProgressCallback,
@@ -32,6 +35,14 @@ export class LLMModule {
32
35
  });
33
36
  }
34
37
 
38
+ static setTokenCallback({
39
+ tokenCallback,
40
+ }: {
41
+ tokenCallback: (token: string) => void;
42
+ }) {
43
+ this.controller.setTokenCallback(tokenCallback);
44
+ }
45
+
35
46
  static configure({
36
47
  chatConfig,
37
48
  toolsConfig,
package/src/types/llm.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export interface LLMType {
2
2
  messageHistory: Message[];
3
3
  response: string;
4
+ token: string;
4
5
  isReady: boolean;
5
6
  isGenerating: boolean;
6
7
  downloadProgress: number;
@@ -46,12 +47,12 @@ export interface ToolsConfig {
46
47
  displayToolCalls?: boolean;
47
48
  }
48
49
 
49
- export const SPECIAL_TOKENS = [
50
- 'bos_token',
51
- 'eos_token',
52
- 'unk_token',
53
- 'sep_token',
54
- 'pad_token',
55
- 'cls_token',
56
- 'mask_token',
57
- ];
50
+ export const SPECIAL_TOKENS = {
51
+ BOS_TOKEN: 'bos_token',
52
+ EOS_TOKEN: 'eos_token',
53
+ UNK_TOKEN: 'unk_token',
54
+ SEP_TOKEN: 'sep_token',
55
+ PAD_TOKEN: 'pad_token',
56
+ CLS_TOKEN: 'cls_token',
57
+ MASK_TOKEN: 'mask_token',
58
+ };