Skip to content

Commit f2a4c53

Browse files
authored
feat: add model details in context (#52)
* feat: add model details in context * fix: type and key * chore(example): cleanup
1 parent cf685ad commit f2a4c53

11 files changed

+149
-39
lines changed

android/src/main/java/com/rnllama/LlamaContext.java

+9
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class LlamaContext {
2424
private int id;
2525
private ReactApplicationContext reactContext;
2626
private long context;
27+
private WritableMap modelDetails;
2728
private int jobId = -1;
2829
private DeviceEventManagerModule.RCTDeviceEventEmitter eventEmitter;
2930

@@ -63,6 +64,7 @@ public LlamaContext(int id, ReactApplicationContext reactContext, ReadableMap pa
6364
// float rope_freq_scale
6465
params.hasKey("rope_freq_scale") ? (float) params.getDouble("rope_freq_scale") : 0.0f
6566
);
67+
this.modelDetails = loadModelDetails(this.context);
6668
this.reactContext = reactContext;
6769
eventEmitter = reactContext.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class);
6870
}
@@ -71,6 +73,10 @@ public long getContext() {
7173
return context;
7274
}
7375

76+
public WritableMap getModelDetails() {
77+
return modelDetails;
78+
}
79+
7480
private void emitPartialCompletion(WritableMap tokenResult) {
7581
WritableMap event = Arguments.createMap();
7682
event.putInt("contextId", LlamaContext.this.id);
@@ -297,6 +303,9 @@ protected static native long initContext(
297303
float rope_freq_base,
298304
float rope_freq_scale
299305
);
306+
protected static native WritableMap loadModelDetails(
307+
long contextPtr
308+
);
300309
protected static native WritableMap loadSession(
301310
long contextPtr,
302311
String path

android/src/main/java/com/rnllama/RNLlama.java

+1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ protected WritableMap doInBackground(Void... voids) {
5959
result.putInt("contextId", id);
6060
result.putBoolean("gpu", false);
6161
result.putString("reasonNoGPU", "Currently not supported");
62+
result.putMap("model", llamaContext.getModelDetails());
6263
return result;
6364
} catch (Exception e) {
6465
exception = e;

android/src/main/jni.cpp

+32
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,38 @@ Java_com_rnllama_LlamaContext_initContext(
185185
return reinterpret_cast<jlong>(llama->ctx);
186186
}
187187

188+
JNIEXPORT jobject JNICALL
189+
Java_com_rnllama_LlamaContext_loadModelDetails(
190+
JNIEnv *env,
191+
jobject thiz,
192+
jlong context_ptr
193+
) {
194+
UNUSED(thiz);
195+
auto llama = context_map[(long) context_ptr];
196+
197+
int count = llama_model_meta_count(llama->model);
198+
auto meta = createWriteableMap(env);
199+
for (int i = 0; i < count; i++) {
200+
char key[256];
201+
llama_model_meta_key_by_index(llama->model, i, key, sizeof(key));
202+
char val[256];
203+
llama_model_meta_val_str_by_index(llama->model, i, val, sizeof(val));
204+
205+
putString(env, meta, key, val);
206+
}
207+
208+
auto result = createWriteableMap(env);
209+
210+
char desc[1024];
211+
llama_model_desc(llama->model, desc, sizeof(desc));
212+
putString(env, result, "desc", desc);
213+
putDouble(env, result, "size", llama_model_size(llama->model));
214+
putDouble(env, result, "nParams", llama_model_n_params(llama->model));
215+
putMap(env, result, "metadata", meta);
216+
217+
return reinterpret_cast<jobject>(result);
218+
}
219+
188220
JNIEXPORT jobject JNICALL
189221
Java_com_rnllama_LlamaContext_loadSession(
190222
JNIEnv *env,

docs/API/README.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ llama.rn
4343

4444
#### Defined in
4545

46-
[index.ts:43](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L43)
46+
[index.ts:43](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L43)
4747

4848
___
4949

@@ -53,7 +53,7 @@ ___
5353

5454
#### Defined in
5555

56-
[index.ts:41](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L41)
56+
[index.ts:41](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L41)
5757

5858
___
5959

@@ -63,7 +63,7 @@ ___
6363

6464
#### Defined in
6565

66-
[index.ts:39](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L39)
66+
[index.ts:39](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L39)
6767

6868
___
6969

@@ -80,7 +80,7 @@ ___
8080

8181
#### Defined in
8282

83-
[index.ts:29](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L29)
83+
[index.ts:29](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L29)
8484

8585
## Functions
8686

@@ -104,7 +104,7 @@ ___
104104

105105
#### Defined in
106106

107-
[grammar.ts:824](https://github.com/mybigday/llama.rn/blob/17714d4/src/grammar.ts#L824)
107+
[grammar.ts:824](https://github.com/mybigday/llama.rn/blob/a2b459e/src/grammar.ts#L824)
108108

109109
___
110110

@@ -124,7 +124,7 @@ ___
124124

125125
#### Defined in
126126

127-
[index.ts:160](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L160)
127+
[index.ts:165](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L165)
128128

129129
___
130130

@@ -138,7 +138,7 @@ ___
138138

139139
#### Defined in
140140

141-
[index.ts:176](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L176)
141+
[index.ts:181](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L181)
142142

143143
___
144144

@@ -158,4 +158,4 @@ ___
158158

159159
#### Defined in
160160

161-
[index.ts:156](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L156)
161+
[index.ts:161](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L161)

docs/API/classes/LlamaContext.md

+24-13
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
- [gpu](LlamaContext.md#gpu)
1414
- [id](LlamaContext.md#id)
15+
- [model](LlamaContext.md#model)
1516
- [reasonNoGPU](LlamaContext.md#reasonnogpu)
1617

1718
### Methods
@@ -40,7 +41,7 @@
4041

4142
#### Defined in
4243

43-
[index.ts:60](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L60)
44+
[index.ts:62](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L62)
4445

4546
## Properties
4647

@@ -50,7 +51,7 @@
5051

5152
#### Defined in
5253

53-
[index.ts:56](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L56)
54+
[index.ts:56](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L56)
5455

5556
___
5657

@@ -60,7 +61,17 @@ ___
6061

6162
#### Defined in
6263

63-
[index.ts:54](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L54)
64+
[index.ts:54](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L54)
65+
66+
___
67+
68+
### model
69+
70+
**model**: `Object` = `{}`
71+
72+
#### Defined in
73+
74+
[index.ts:60](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L60)
6475

6576
___
6677

@@ -70,7 +81,7 @@ ___
7081

7182
#### Defined in
7283

73-
[index.ts:58](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L58)
84+
[index.ts:58](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L58)
7485

7586
## Methods
7687

@@ -93,7 +104,7 @@ ___
93104

94105
#### Defined in
95106

96-
[index.ts:129](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L129)
107+
[index.ts:134](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L134)
97108

98109
___
99110

@@ -114,7 +125,7 @@ ___
114125

115126
#### Defined in
116127

117-
[index.ts:84](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L84)
128+
[index.ts:89](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L89)
118129

119130
___
120131

@@ -134,7 +145,7 @@ ___
134145

135146
#### Defined in
136147

137-
[index.ts:121](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L121)
148+
[index.ts:126](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L126)
138149

139150
___
140151

@@ -154,7 +165,7 @@ ___
154165

155166
#### Defined in
156167

157-
[index.ts:125](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L125)
168+
[index.ts:130](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L130)
158169

159170
___
160171

@@ -176,7 +187,7 @@ Load cached prompt & completion state from a file.
176187

177188
#### Defined in
178189

179-
[index.ts:73](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L73)
190+
[index.ts:78](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L78)
180191

181192
___
182193

@@ -190,7 +201,7 @@ ___
190201

191202
#### Defined in
192203

193-
[index.ts:151](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L151)
204+
[index.ts:156](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L156)
194205

195206
___
196207

@@ -214,7 +225,7 @@ Save current cached prompt & completion state to a file.
214225

215226
#### Defined in
216227

217-
[index.ts:80](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L80)
228+
[index.ts:85](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L85)
218229

219230
___
220231

@@ -228,7 +239,7 @@ ___
228239

229240
#### Defined in
230241

231-
[index.ts:113](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L113)
242+
[index.ts:118](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L118)
232243

233244
___
234245

@@ -248,4 +259,4 @@ ___
248259

249260
#### Defined in
250261

251-
[index.ts:117](https://github.com/mybigday/llama.rn/blob/17714d4/src/index.ts#L117)
262+
[index.ts:122](https://github.com/mybigday/llama.rn/blob/a2b459e/src/index.ts#L122)

0 commit comments

Comments
 (0)