@agorapete/wllama 3.5.1-q2.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/.gitmodules +3 -0
- package/.prettierignore +38 -0
- package/AGENTS.md +1 -0
- package/CMakeLists.txt +131 -0
- package/LICENCE +21 -0
- package/README-dev.md +178 -0
- package/README.md +225 -0
- package/README_banner.png +0 -0
- package/assets/screenshot_0.png +0 -0
- package/cpp/generate_glue_prototype.js +115 -0
- package/cpp/glue.hpp +664 -0
- package/cpp/test_glue.cpp +80 -0
- package/cpp/wllama-context.h +1172 -0
- package/cpp/wllama-fs.h +148 -0
- package/cpp/wllama.cpp +187 -0
- package/cpp/wllama.h +6 -0
- package/esm/cache-manager.d.ts +130 -0
- package/esm/debug.d.ts +28 -0
- package/esm/glue/glue.d.ts +22 -0
- package/esm/glue/messages.d.ts +146 -0
- package/esm/huggingface.d.ts +31 -0
- package/esm/index.cjs +3406 -0
- package/esm/index.d.ts +8 -0
- package/esm/index.js +3387 -0
- package/esm/index.min.js +1 -0
- package/esm/index.min.js.map +1 -0
- package/esm/model-manager.d.ts +136 -0
- package/esm/storage/cos.d.ts +36 -0
- package/esm/storage/index.d.ts +33 -0
- package/esm/storage/opfs.d.ts +12 -0
- package/esm/types/oai-compat.d.ts +278 -0
- package/esm/types/types.d.ts +112 -0
- package/esm/utils.d.ts +119 -0
- package/esm/wasm/source-map.d.ts +1 -0
- package/esm/wasm/wllama.wasm +0 -0
- package/esm/wasm-from-cdn.d.ts +8 -0
- package/esm/wllama.d.ts +397 -0
- package/esm/worker.d.ts +92 -0
- package/esm/workers-code/generated.d.ts +4 -0
- package/guides/intro-v2.md +132 -0
- package/guides/intro-v3.1.md +40 -0
- package/guides/intro-v3.md +230 -0
- package/index.ts +1 -0
- package/package.json +71 -0
- package/scripts/bisect_test.sh +33 -0
- package/scripts/build_hf_space.sh +26 -0
- package/scripts/build_source_map.js +269 -0
- package/scripts/build_wasm.sh +19 -0
- package/scripts/build_worker.sh +38 -0
- package/scripts/check_debug_build.js +30 -0
- package/scripts/check_package_size.js +25 -0
- package/scripts/docker-compose.yml +76 -0
- package/scripts/generate_wasm_from_cdn.js +24 -0
- package/scripts/http_server.js +44 -0
- package/scripts/post_build.sh +32 -0
- package/src/cache-manager.ts +358 -0
- package/src/debug.ts +111 -0
- package/src/glue/glue.ts +291 -0
- package/src/glue/messages.ts +773 -0
- package/src/huggingface.ts +151 -0
- package/src/index.ts +8 -0
- package/src/mjs.test.ts +44 -0
- package/src/model-manager.test.ts +200 -0
- package/src/model-manager.ts +359 -0
- package/src/storage/cos.test.ts +83 -0
- package/src/storage/cos.ts +171 -0
- package/src/storage/index.ts +40 -0
- package/src/storage/opfs.ts +119 -0
- package/src/types/oai-compat.ts +342 -0
- package/src/types/types.ts +133 -0
- package/src/utils.test.ts +231 -0
- package/src/utils.ts +403 -0
- package/src/wasm/source-map.ts +7 -0
- package/src/wasm/wllama.js +1 -0
- package/src/wasm/wllama.wasm +0 -0
- package/src/wasm-from-cdn.ts +13 -0
- package/src/wllama.test.ts +392 -0
- package/src/wllama.ts +1138 -0
- package/src/wllama.wgpu.test.ts +62 -0
- package/src/worker.ts +443 -0
- package/src/workers-code/generated.ts +11 -0
- package/src/workers-code/llama-cpp.js +511 -0
- package/src/workers-code/opfs-utils.js +150 -0
- package/tsconfig.build.json +34 -0
- package/tsup.config.ts +23 -0
- package/vitest.config.ts +61 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
#include <cassert>
|
|
2
|
+
#include <iostream>
|
|
3
|
+
|
|
4
|
+
#define GLUE_DEBUG(...) printf(__VA_ARGS__)
|
|
5
|
+
#include "glue.hpp"
|
|
6
|
+
|
|
7
|
+
// g++ -std=c++17 -o test_glue test_glue.cpp && ./test_glue
|
|
8
|
+
|
|
9
|
+
bool cmp_float(float a, float b) {
|
|
10
|
+
return std::abs(a - b) < 1e-6;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
static glue_outbuf outbuf;
|
|
14
|
+
|
|
15
|
+
void test_load_req() {
|
|
16
|
+
glue_msg_load_req req;
|
|
17
|
+
req.use_mmap.value = true;
|
|
18
|
+
req.n_gpu_layers.value = 32;
|
|
19
|
+
req.seed.value = 42;
|
|
20
|
+
req.n_ctx.value = 2048;
|
|
21
|
+
req.embeddings.value = false;
|
|
22
|
+
req.pooling_type.value = "mean";
|
|
23
|
+
|
|
24
|
+
req.handler.serialize(outbuf);
|
|
25
|
+
FILE* fp = fopen("dump.bin", "wb");
|
|
26
|
+
fwrite(outbuf.data.data(), 1, outbuf.data.size(), fp);
|
|
27
|
+
fclose(fp);
|
|
28
|
+
|
|
29
|
+
printf("\n----------\n\n");
|
|
30
|
+
|
|
31
|
+
glue_msg_load_req req2;
|
|
32
|
+
glue_inbuf inbuf(outbuf.data.data());
|
|
33
|
+
req2.handler.deserialize(inbuf);
|
|
34
|
+
|
|
35
|
+
assert(req2.use_mmap.value == true);
|
|
36
|
+
assert(req2.n_gpu_layers.value == 32);
|
|
37
|
+
assert(req2.seed.value == 42);
|
|
38
|
+
assert(req2.n_ctx.value == 2048);
|
|
39
|
+
assert(req2.embeddings.value == false);
|
|
40
|
+
assert(req2.pooling_type.value == "mean");
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
void test_sampling_init() {
|
|
44
|
+
glue_msg_sampling_init_req req;
|
|
45
|
+
req.mirostat.value = 2;
|
|
46
|
+
req.temp.value = 0.8;
|
|
47
|
+
req.top_p.value = 0.95;
|
|
48
|
+
req.penalty_repeat.value = 1.1;
|
|
49
|
+
req.grammar.value = "test grammar";
|
|
50
|
+
std::vector<int32_t> tokens = {1, 2, 3, 4, 5};
|
|
51
|
+
req.tokens.arr = tokens;
|
|
52
|
+
|
|
53
|
+
req.handler.serialize(outbuf);
|
|
54
|
+
FILE* fp = fopen("dump2.bin", "wb");
|
|
55
|
+
fwrite(outbuf.data.data(), 1, outbuf.data.size(), fp);
|
|
56
|
+
fclose(fp);
|
|
57
|
+
|
|
58
|
+
printf("\n----------\n\n");
|
|
59
|
+
|
|
60
|
+
glue_msg_sampling_init_req req2;
|
|
61
|
+
glue_inbuf inbuf(outbuf.data.data());
|
|
62
|
+
req2.handler.deserialize(inbuf);
|
|
63
|
+
|
|
64
|
+
assert(req2.mirostat.value == 2);
|
|
65
|
+
assert(cmp_float(req2.temp.value, 0.8));
|
|
66
|
+
assert(cmp_float(req2.top_p.value, 0.95));
|
|
67
|
+
assert(cmp_float(req2.penalty_repeat.value, 1.1));
|
|
68
|
+
assert(req2.grammar.value == "test grammar");
|
|
69
|
+
for (int i = 0; i < tokens.size(); i++) {
|
|
70
|
+
assert(req2.tokens.arr[i] == tokens[i]);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
int main() {
|
|
75
|
+
test_load_req();
|
|
76
|
+
printf("\n\n\n\n");
|
|
77
|
+
test_sampling_init();
|
|
78
|
+
std::cout << "All tests passed!" << std::endl;
|
|
79
|
+
return 0;
|
|
80
|
+
}
|