cui-llama.rn 0.2.0
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.
- package/LICENSE +20 -0
- package/README.md +330 -0
- package/android/build.gradle +107 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/CMakeLists.txt +69 -0
- package/android/src/main/java/com/rnllama/LlamaContext.java +353 -0
- package/android/src/main/java/com/rnllama/RNLlama.java +446 -0
- package/android/src/main/java/com/rnllama/RNLlamaPackage.java +48 -0
- package/android/src/main/jni.cpp +635 -0
- package/android/src/newarch/java/com/rnllama/RNLlamaModule.java +94 -0
- package/android/src/oldarch/java/com/rnllama/RNLlamaModule.java +95 -0
- package/cpp/README.md +4 -0
- package/cpp/common.cpp +3237 -0
- package/cpp/common.h +467 -0
- package/cpp/ggml-aarch64.c +2193 -0
- package/cpp/ggml-aarch64.h +39 -0
- package/cpp/ggml-alloc.c +1041 -0
- package/cpp/ggml-alloc.h +76 -0
- package/cpp/ggml-backend-impl.h +153 -0
- package/cpp/ggml-backend.c +2225 -0
- package/cpp/ggml-backend.h +236 -0
- package/cpp/ggml-common.h +1829 -0
- package/cpp/ggml-impl.h +655 -0
- package/cpp/ggml-metal.h +65 -0
- package/cpp/ggml-metal.m +3273 -0
- package/cpp/ggml-quants.c +15022 -0
- package/cpp/ggml-quants.h +132 -0
- package/cpp/ggml.c +22034 -0
- package/cpp/ggml.h +2444 -0
- package/cpp/grammar-parser.cpp +536 -0
- package/cpp/grammar-parser.h +29 -0
- package/cpp/json-schema-to-grammar.cpp +1045 -0
- package/cpp/json-schema-to-grammar.h +8 -0
- package/cpp/json.hpp +24766 -0
- package/cpp/llama.cpp +21789 -0
- package/cpp/llama.h +1201 -0
- package/cpp/log.h +737 -0
- package/cpp/rn-llama.hpp +630 -0
- package/cpp/sampling.cpp +460 -0
- package/cpp/sampling.h +160 -0
- package/cpp/sgemm.cpp +1027 -0
- package/cpp/sgemm.h +14 -0
- package/cpp/unicode-data.cpp +7032 -0
- package/cpp/unicode-data.h +20 -0
- package/cpp/unicode.cpp +812 -0
- package/cpp/unicode.h +64 -0
- package/ios/RNLlama.h +11 -0
- package/ios/RNLlama.mm +302 -0
- package/ios/RNLlama.xcodeproj/project.pbxproj +278 -0
- package/ios/RNLlamaContext.h +39 -0
- package/ios/RNLlamaContext.mm +426 -0
- package/jest/mock.js +169 -0
- package/lib/commonjs/NativeRNLlama.js +10 -0
- package/lib/commonjs/NativeRNLlama.js.map +1 -0
- package/lib/commonjs/grammar.js +574 -0
- package/lib/commonjs/grammar.js.map +1 -0
- package/lib/commonjs/index.js +151 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/module/NativeRNLlama.js +3 -0
- package/lib/module/NativeRNLlama.js.map +1 -0
- package/lib/module/grammar.js +566 -0
- package/lib/module/grammar.js.map +1 -0
- package/lib/module/index.js +129 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/NativeRNLlama.d.ts +107 -0
- package/lib/typescript/NativeRNLlama.d.ts.map +1 -0
- package/lib/typescript/grammar.d.ts +38 -0
- package/lib/typescript/grammar.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +46 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/llama-rn.podspec +56 -0
- package/package.json +230 -0
- package/src/NativeRNLlama.ts +132 -0
- package/src/grammar.ts +849 -0
- package/src/index.ts +182 -0
@@ -0,0 +1,151 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.LlamaContext = void 0;
|
7
|
+
Object.defineProperty(exports, "SchemaGrammarConverter", {
|
8
|
+
enumerable: true,
|
9
|
+
get: function () {
|
10
|
+
return _grammar.SchemaGrammarConverter;
|
11
|
+
}
|
12
|
+
});
|
13
|
+
Object.defineProperty(exports, "convertJsonSchemaToGrammar", {
|
14
|
+
enumerable: true,
|
15
|
+
get: function () {
|
16
|
+
return _grammar.convertJsonSchemaToGrammar;
|
17
|
+
}
|
18
|
+
});
|
19
|
+
exports.initLlama = initLlama;
|
20
|
+
exports.releaseAllLlama = releaseAllLlama;
|
21
|
+
exports.setContextLimit = setContextLimit;
|
22
|
+
var _reactNative = require("react-native");
|
23
|
+
var _NativeRNLlama = _interopRequireDefault(require("./NativeRNLlama"));
|
24
|
+
var _grammar = require("./grammar");
|
25
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
26
|
+
const EVENT_ON_TOKEN = '@RNLlama_onToken';
|
27
|
+
let EventEmitter;
|
28
|
+
if (_reactNative.Platform.OS === 'ios') {
|
29
|
+
// @ts-ignore
|
30
|
+
EventEmitter = new _reactNative.NativeEventEmitter(_NativeRNLlama.default);
|
31
|
+
}
|
32
|
+
if (_reactNative.Platform.OS === 'android') {
|
33
|
+
EventEmitter = _reactNative.DeviceEventEmitter;
|
34
|
+
}
|
35
|
+
class LlamaContext {
|
36
|
+
gpu = false;
|
37
|
+
reasonNoGPU = '';
|
38
|
+
model = {};
|
39
|
+
constructor(_ref) {
|
40
|
+
let {
|
41
|
+
contextId,
|
42
|
+
gpu,
|
43
|
+
reasonNoGPU,
|
44
|
+
model
|
45
|
+
} = _ref;
|
46
|
+
this.id = contextId;
|
47
|
+
this.gpu = gpu;
|
48
|
+
this.reasonNoGPU = reasonNoGPU;
|
49
|
+
this.model = model;
|
50
|
+
}
|
51
|
+
|
52
|
+
/**
|
53
|
+
* Load cached prompt & completion state from a file.
|
54
|
+
*/
|
55
|
+
async loadSession(filepath) {
|
56
|
+
return _NativeRNLlama.default.loadSession(this.id, filepath);
|
57
|
+
}
|
58
|
+
|
59
|
+
/**
|
60
|
+
* Save current cached prompt & completion state to a file.
|
61
|
+
*/
|
62
|
+
async saveSession(filepath, options) {
|
63
|
+
return _NativeRNLlama.default.saveSession(this.id, filepath, (options === null || options === void 0 ? void 0 : options.tokenSize) || -1);
|
64
|
+
}
|
65
|
+
async completion(params, callback) {
|
66
|
+
let tokenListener = callback && EventEmitter.addListener(EVENT_ON_TOKEN, evt => {
|
67
|
+
const {
|
68
|
+
contextId,
|
69
|
+
tokenResult
|
70
|
+
} = evt;
|
71
|
+
if (contextId !== this.id) return;
|
72
|
+
callback(tokenResult);
|
73
|
+
});
|
74
|
+
const promise = _NativeRNLlama.default.completion(this.id, {
|
75
|
+
...params,
|
76
|
+
emit_partial_completion: !!callback
|
77
|
+
});
|
78
|
+
return promise.then(completionResult => {
|
79
|
+
var _tokenListener;
|
80
|
+
(_tokenListener = tokenListener) === null || _tokenListener === void 0 ? void 0 : _tokenListener.remove();
|
81
|
+
tokenListener = null;
|
82
|
+
return completionResult;
|
83
|
+
}).catch(err => {
|
84
|
+
var _tokenListener2;
|
85
|
+
(_tokenListener2 = tokenListener) === null || _tokenListener2 === void 0 ? void 0 : _tokenListener2.remove();
|
86
|
+
tokenListener = null;
|
87
|
+
throw err;
|
88
|
+
});
|
89
|
+
}
|
90
|
+
stopCompletion() {
|
91
|
+
return _NativeRNLlama.default.stopCompletion(this.id);
|
92
|
+
}
|
93
|
+
tokenize(text) {
|
94
|
+
return _NativeRNLlama.default.tokenize(this.id, text);
|
95
|
+
}
|
96
|
+
detokenize(tokens) {
|
97
|
+
return _NativeRNLlama.default.detokenize(this.id, tokens);
|
98
|
+
}
|
99
|
+
embedding(text) {
|
100
|
+
return _NativeRNLlama.default.embedding(this.id, text);
|
101
|
+
}
|
102
|
+
async bench(pp, tg, pl, nr) {
|
103
|
+
const result = await _NativeRNLlama.default.bench(this.id, pp, tg, pl, nr);
|
104
|
+
const [modelDesc, modelSize, modelNParams, ppAvg, ppStd, tgAvg, tgStd] = JSON.parse(result);
|
105
|
+
return {
|
106
|
+
modelDesc,
|
107
|
+
modelSize,
|
108
|
+
modelNParams,
|
109
|
+
ppAvg,
|
110
|
+
ppStd,
|
111
|
+
tgAvg,
|
112
|
+
tgStd
|
113
|
+
};
|
114
|
+
}
|
115
|
+
async release() {
|
116
|
+
return _NativeRNLlama.default.releaseContext(this.id);
|
117
|
+
}
|
118
|
+
}
|
119
|
+
exports.LlamaContext = LlamaContext;
|
120
|
+
async function setContextLimit(limit) {
|
121
|
+
return _NativeRNLlama.default.setContextLimit(limit);
|
122
|
+
}
|
123
|
+
async function initLlama(_ref2) {
|
124
|
+
let {
|
125
|
+
model,
|
126
|
+
is_model_asset: isModelAsset,
|
127
|
+
...rest
|
128
|
+
} = _ref2;
|
129
|
+
let path = model;
|
130
|
+
if (path.startsWith('file://')) path = path.slice(7);
|
131
|
+
const {
|
132
|
+
contextId,
|
133
|
+
gpu,
|
134
|
+
reasonNoGPU,
|
135
|
+
model: modelDetails
|
136
|
+
} = await _NativeRNLlama.default.initContext({
|
137
|
+
model: path,
|
138
|
+
is_model_asset: !!isModelAsset,
|
139
|
+
...rest
|
140
|
+
});
|
141
|
+
return new LlamaContext({
|
142
|
+
contextId,
|
143
|
+
gpu,
|
144
|
+
reasonNoGPU,
|
145
|
+
model: modelDetails
|
146
|
+
});
|
147
|
+
}
|
148
|
+
async function releaseAllLlama() {
|
149
|
+
return _NativeRNLlama.default.releaseAllContexts();
|
150
|
+
}
|
151
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeRNLlama","_interopRequireDefault","_grammar","obj","__esModule","default","EVENT_ON_TOKEN","EventEmitter","Platform","OS","NativeEventEmitter","RNLlama","DeviceEventEmitter","LlamaContext","gpu","reasonNoGPU","model","constructor","_ref","contextId","id","loadSession","filepath","saveSession","options","tokenSize","completion","params","callback","tokenListener","addListener","evt","tokenResult","promise","emit_partial_completion","then","completionResult","_tokenListener","remove","catch","err","_tokenListener2","stopCompletion","tokenize","text","detokenize","tokens","embedding","bench","pp","tg","pl","nr","result","modelDesc","modelSize","modelNParams","ppAvg","ppStd","tgAvg","tgStd","JSON","parse","release","releaseContext","exports","setContextLimit","limit","initLlama","_ref2","is_model_asset","isModelAsset","rest","path","startsWith","slice","modelDetails","initContext","releaseAllLlama","releaseAllContexts"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":"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"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","get"],"sourceRoot":"..\\..\\src","sources":["NativeRNLlama.ts"],"mappings":"AACA,SAASA,mBAAmB,QAAQ,cAAc;AAkIlD,eAAeA,mBAAmB,CAACC,GAAG,CAAO,SAAS,CAAC"}
|