@shipworthy/ai-sdk-llama-cpp 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/CMakeLists.txt +6 -0
- package/LICENSE +21 -0
- package/README.md +274 -0
- package/dist/binding-bun.d.ts +7 -0
- package/dist/binding-bun.d.ts.map +1 -0
- package/dist/binding-bun.js +354 -0
- package/dist/binding-bun.js.map +1 -0
- package/dist/binding-node.d.ts +7 -0
- package/dist/binding-node.d.ts.map +1 -0
- package/dist/binding-node.js +59 -0
- package/dist/binding-node.js.map +1 -0
- package/dist/binding.d.ts +67 -0
- package/dist/binding.d.ts.map +1 -0
- package/dist/binding.js +105 -0
- package/dist/binding.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/llama-cpp-embedding-model.d.ts +28 -0
- package/dist/llama-cpp-embedding-model.d.ts.map +1 -0
- package/dist/llama-cpp-embedding-model.js +78 -0
- package/dist/llama-cpp-embedding-model.js.map +1 -0
- package/dist/llama-cpp-language-model.d.ts +55 -0
- package/dist/llama-cpp-language-model.d.ts.map +1 -0
- package/dist/llama-cpp-language-model.js +221 -0
- package/dist/llama-cpp-language-model.js.map +1 -0
- package/dist/llama-cpp-provider.d.ts +82 -0
- package/dist/llama-cpp-provider.d.ts.map +1 -0
- package/dist/llama-cpp-provider.js +71 -0
- package/dist/llama-cpp-provider.js.map +1 -0
- package/dist/native-binding.d.ts +51 -0
- package/dist/native-binding.d.ts.map +1 -0
- package/dist/native-binding.js +74 -0
- package/dist/native-binding.js.map +1 -0
- package/native/CMakeLists.txt +74 -0
- package/native/binding.cpp +522 -0
- package/native/llama-wrapper.cpp +519 -0
- package/native/llama-wrapper.h +131 -0
- package/package.json +79 -0
- package/scripts/postinstall.cjs +74 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding-bun.js","sourceRoot":"","sources":["../src/binding-bun.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { LoadModelOptions, GenerateOptions, GenerateResult } from './binding.js';
|
|
2
|
+
export declare function loadModel(options: LoadModelOptions): Promise<number>;
|
|
3
|
+
export declare function unloadModel(handle: number): boolean;
|
|
4
|
+
export declare function generate(handle: number, options: GenerateOptions): Promise<GenerateResult>;
|
|
5
|
+
export declare function generateStream(handle: number, options: GenerateOptions, onToken: (token: string) => void): Promise<GenerateResult>;
|
|
6
|
+
export declare function isModelLoaded(handle: number): boolean;
|
|
7
|
+
//# sourceMappingURL=binding-node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding-node.d.ts","sourceRoot":"","sources":["../src/binding-node.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAqBtF,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAYpE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAY1F;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,cAAc,CAAC,CAiBzB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { join, dirname } from 'node:path';
|
|
3
|
+
import { fileURLToPath } from 'node:url';
|
|
4
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
5
|
+
const require = createRequire(import.meta.url);
|
|
6
|
+
// Load the native binding
|
|
7
|
+
const binding = require(join(__dirname, '..', 'build', 'Release', 'llama_binding.node'));
|
|
8
|
+
export function loadModel(options) {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
binding.loadModel(options, (error, handle) => {
|
|
11
|
+
if (error) {
|
|
12
|
+
reject(new Error(error));
|
|
13
|
+
}
|
|
14
|
+
else if (handle !== null) {
|
|
15
|
+
resolve(handle);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
reject(new Error('Failed to load model: unknown error'));
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
export function unloadModel(handle) {
|
|
24
|
+
return binding.unloadModel(handle);
|
|
25
|
+
}
|
|
26
|
+
export function generate(handle, options) {
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
binding.generate(handle, options, (error, result) => {
|
|
29
|
+
if (error) {
|
|
30
|
+
reject(new Error(error));
|
|
31
|
+
}
|
|
32
|
+
else if (result) {
|
|
33
|
+
resolve(result);
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
reject(new Error('Failed to generate: unknown error'));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
export function generateStream(handle, options, onToken) {
|
|
42
|
+
return new Promise((resolve, reject) => {
|
|
43
|
+
binding.generateStream(handle, options, onToken, (error, result) => {
|
|
44
|
+
if (error) {
|
|
45
|
+
reject(new Error(error));
|
|
46
|
+
}
|
|
47
|
+
else if (result) {
|
|
48
|
+
resolve(result);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
reject(new Error('Failed to generate stream: unknown error'));
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
export function isModelLoaded(handle) {
|
|
57
|
+
return binding.isModelLoaded(handle);
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=binding-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding-node.js","sourceRoot":"","sources":["../src/binding-node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAC1D,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,0BAA0B;AAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,oBAAoB,CAAC,CAAkB,CAAC;AAe1G,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAC3C,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;gBAC3B,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAc;IACxC,OAAO,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,MAAc,EAAE,OAAwB;IAC/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAClD,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,MAAc,EACd,OAAwB,EACxB,OAAgC;IAEhC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,OAAO,CAAC,cAAc,CACpB,MAAM,EACN,OAAO,EACP,OAAO,EACP,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YAChB,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3B,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,OAAO,CAAC,MAAM,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC,CAAC;YAChE,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Environment detection and binding router.
|
|
3
|
+
* Automatically selects the correct binding based on the runtime environment.
|
|
4
|
+
*/
|
|
5
|
+
export interface LoadModelOptions {
|
|
6
|
+
modelPath: string;
|
|
7
|
+
gpuLayers?: number;
|
|
8
|
+
contextSize?: number;
|
|
9
|
+
threads?: number;
|
|
10
|
+
debug?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Chat template to use for formatting messages.
|
|
13
|
+
* - "auto" (default): Use the template embedded in the GGUF model file
|
|
14
|
+
* - Template name: Use a specific built-in template (e.g., "llama3", "chatml", "gemma")
|
|
15
|
+
*/
|
|
16
|
+
chatTemplate?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface ChatMessage {
|
|
19
|
+
role: string;
|
|
20
|
+
content: string;
|
|
21
|
+
}
|
|
22
|
+
export interface GenerateOptions {
|
|
23
|
+
messages: ChatMessage[];
|
|
24
|
+
maxTokens?: number;
|
|
25
|
+
temperature?: number;
|
|
26
|
+
topP?: number;
|
|
27
|
+
topK?: number;
|
|
28
|
+
stopSequences?: string[];
|
|
29
|
+
}
|
|
30
|
+
export interface GenerateResult {
|
|
31
|
+
text: string;
|
|
32
|
+
promptTokens: number;
|
|
33
|
+
completionTokens: number;
|
|
34
|
+
finishReason: 'stop' | 'length' | 'error';
|
|
35
|
+
}
|
|
36
|
+
export interface Binding {
|
|
37
|
+
loadModel(options: LoadModelOptions): Promise<number>;
|
|
38
|
+
unloadModel(handle: number): boolean;
|
|
39
|
+
generate(handle: number, options: GenerateOptions): Promise<GenerateResult>;
|
|
40
|
+
generateStream(handle: number, options: GenerateOptions, onToken: (token: string) => void): Promise<GenerateResult>;
|
|
41
|
+
isModelLoaded(handle: number): boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Load a model from a GGUF file.
|
|
45
|
+
*/
|
|
46
|
+
export declare function loadModel(options: LoadModelOptions): Promise<number>;
|
|
47
|
+
/**
|
|
48
|
+
* Unload a model.
|
|
49
|
+
*/
|
|
50
|
+
export declare function unloadModel(handle: number): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Generate text from messages (non-streaming).
|
|
53
|
+
*/
|
|
54
|
+
export declare function generate(handle: number, options: GenerateOptions): Promise<GenerateResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Generate text from messages (streaming).
|
|
57
|
+
*/
|
|
58
|
+
export declare function generateStream(handle: number, options: GenerateOptions, onToken: (token: string) => void): Promise<GenerateResult>;
|
|
59
|
+
/**
|
|
60
|
+
* Check if a model is loaded.
|
|
61
|
+
*/
|
|
62
|
+
export declare function isModelLoaded(handle: number): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Get the current runtime environment name.
|
|
65
|
+
*/
|
|
66
|
+
export declare function getRuntimeName(): "bun" | "node" | "unknown";
|
|
67
|
+
//# sourceMappingURL=binding.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding.d.ts","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;CAC3C;AAED,MAAM,WAAW,OAAO;IACtB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACtD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC5E,cAAc,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;CACxC;AA0ED;;GAEG;AACH,wBAAsB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAI1E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAGzB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAC/B,OAAO,CAAC,cAAc,CAAC,CAGzB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,KAAK,GAAG,MAAM,GAAG,SAAS,CAI3D"}
|
package/dist/binding.js
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Detect if running in Bun runtime
|
|
3
|
+
*/
|
|
4
|
+
function isBun() {
|
|
5
|
+
return typeof globalThis.Bun !== "undefined";
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Detect if running in Node.js runtime
|
|
9
|
+
*/
|
|
10
|
+
function isNode() {
|
|
11
|
+
return (typeof process !== "undefined" &&
|
|
12
|
+
process.versions != null &&
|
|
13
|
+
process.versions.node != null &&
|
|
14
|
+
!isBun());
|
|
15
|
+
}
|
|
16
|
+
// Lazy-loaded binding
|
|
17
|
+
let cachedBinding = null;
|
|
18
|
+
/**
|
|
19
|
+
* Get the appropriate binding for the current runtime environment.
|
|
20
|
+
* Throws an error if the runtime is not supported.
|
|
21
|
+
*/
|
|
22
|
+
async function getBinding() {
|
|
23
|
+
if (cachedBinding) {
|
|
24
|
+
return cachedBinding;
|
|
25
|
+
}
|
|
26
|
+
if (isBun()) {
|
|
27
|
+
// Dynamic import for Bun binding
|
|
28
|
+
const bunBinding = await import("./binding-bun.js");
|
|
29
|
+
cachedBinding = {
|
|
30
|
+
loadModel: bunBinding.loadModel,
|
|
31
|
+
unloadModel: bunBinding.unloadModel,
|
|
32
|
+
generate: bunBinding.generate,
|
|
33
|
+
generateStream: bunBinding.generateStream,
|
|
34
|
+
isModelLoaded: bunBinding.isModelLoaded,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
else if (isNode()) {
|
|
38
|
+
// Dynamic import for Node binding
|
|
39
|
+
const nodeBinding = await import("./binding-node.js");
|
|
40
|
+
cachedBinding = {
|
|
41
|
+
loadModel: nodeBinding.loadModel,
|
|
42
|
+
unloadModel: nodeBinding.unloadModel,
|
|
43
|
+
generate: nodeBinding.generate,
|
|
44
|
+
generateStream: nodeBinding.generateStream,
|
|
45
|
+
isModelLoaded: nodeBinding.isModelLoaded,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
throw new Error("Unsupported runtime environment. Only Node.js and Bun are supported.");
|
|
50
|
+
}
|
|
51
|
+
return cachedBinding;
|
|
52
|
+
}
|
|
53
|
+
// Synchronous binding access for functions that need it
|
|
54
|
+
let syncBinding = null;
|
|
55
|
+
function getSyncBinding() {
|
|
56
|
+
if (!syncBinding) {
|
|
57
|
+
throw new Error("Binding not initialized. Call loadModel() first to initialize the binding.");
|
|
58
|
+
}
|
|
59
|
+
return syncBinding;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Load a model from a GGUF file.
|
|
63
|
+
*/
|
|
64
|
+
export async function loadModel(options) {
|
|
65
|
+
const binding = await getBinding();
|
|
66
|
+
syncBinding = binding;
|
|
67
|
+
return binding.loadModel(options);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Unload a model.
|
|
71
|
+
*/
|
|
72
|
+
export function unloadModel(handle) {
|
|
73
|
+
return getSyncBinding().unloadModel(handle);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Generate text from messages (non-streaming).
|
|
77
|
+
*/
|
|
78
|
+
export async function generate(handle, options) {
|
|
79
|
+
const binding = await getBinding();
|
|
80
|
+
return binding.generate(handle, options);
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Generate text from messages (streaming).
|
|
84
|
+
*/
|
|
85
|
+
export async function generateStream(handle, options, onToken) {
|
|
86
|
+
const binding = await getBinding();
|
|
87
|
+
return binding.generateStream(handle, options, onToken);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Check if a model is loaded.
|
|
91
|
+
*/
|
|
92
|
+
export function isModelLoaded(handle) {
|
|
93
|
+
return getSyncBinding().isModelLoaded(handle);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Get the current runtime environment name.
|
|
97
|
+
*/
|
|
98
|
+
export function getRuntimeName() {
|
|
99
|
+
if (isBun())
|
|
100
|
+
return "bun";
|
|
101
|
+
if (isNode())
|
|
102
|
+
return "node";
|
|
103
|
+
return "unknown";
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=binding.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binding.js","sourceRoot":"","sources":["../src/binding.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { llamaCpp, type LlamaCppProvider, type LlamaCppProviderConfig, } from "./llama-cpp-provider.js";
|
|
2
|
+
export { LlamaCppLanguageModel, type LlamaCppModelConfig, type LlamaCppGenerationConfig, convertMessages, convertFinishReason, convertUsage, } from "./llama-cpp-language-model.js";
|
|
3
|
+
export { LlamaCppEmbeddingModel, } from "./llama-cpp-embedding-model.js";
|
|
4
|
+
export { default } from "./llama-cpp-provider.js";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB,EACrB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAE7B,eAAe,EACf,mBAAmB,EACnB,YAAY,GACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { llamaCpp, } from "./llama-cpp-provider.js";
|
|
2
|
+
export { LlamaCppLanguageModel,
|
|
3
|
+
// Exported for testing
|
|
4
|
+
convertMessages, convertFinishReason, convertUsage, } from "./llama-cpp-language-model.js";
|
|
5
|
+
export { LlamaCppEmbeddingModel, } from "./llama-cpp-embedding-model.js";
|
|
6
|
+
// Default export
|
|
7
|
+
export { default } from "./llama-cpp-provider.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,GAGT,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,qBAAqB;AAGrB,uBAAuB;AACvB,eAAe,EACf,mBAAmB,EACnB,YAAY,GACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,sBAAsB,GACvB,MAAM,gCAAgC,CAAC;AAExC,iBAAiB;AACjB,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { EmbeddingModelV3, EmbeddingModelV3CallOptions, EmbeddingModelV3Result } from "@ai-sdk/provider";
|
|
2
|
+
import type { LlamaCppProviderConfig } from "./llama-cpp-provider.js";
|
|
3
|
+
export declare class LlamaCppEmbeddingModel implements EmbeddingModelV3 {
|
|
4
|
+
readonly specificationVersion: "v3";
|
|
5
|
+
readonly provider = "llama.cpp";
|
|
6
|
+
readonly modelId: string;
|
|
7
|
+
/**
|
|
8
|
+
* Maximum number of embeddings that can be generated in a single call.
|
|
9
|
+
* Local models can handle large batches, but we limit to prevent memory issues.
|
|
10
|
+
*/
|
|
11
|
+
readonly maxEmbeddingsPerCall: number;
|
|
12
|
+
/**
|
|
13
|
+
* Whether the model supports parallel calls.
|
|
14
|
+
* We use a single model instance, so parallel calls are not supported.
|
|
15
|
+
*/
|
|
16
|
+
readonly supportsParallelCalls: boolean;
|
|
17
|
+
private modelHandle;
|
|
18
|
+
private readonly config;
|
|
19
|
+
private initPromise;
|
|
20
|
+
constructor(config: LlamaCppProviderConfig);
|
|
21
|
+
private ensureModelLoaded;
|
|
22
|
+
/**
|
|
23
|
+
* Dispose of the model and free resources.
|
|
24
|
+
*/
|
|
25
|
+
dispose(): Promise<void>;
|
|
26
|
+
doEmbed(options: EmbeddingModelV3CallOptions): Promise<EmbeddingModelV3Result>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=llama-cpp-embedding-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llama-cpp-embedding-model.d.ts","sourceRoot":"","sources":["../src/llama-cpp-embedding-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,sBAAsB,EAEvB,MAAM,kBAAkB,CAAC;AAU1B,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,qBAAa,sBAAuB,YAAW,gBAAgB;IAC7D,QAAQ,CAAC,oBAAoB,EAAG,IAAI,CAAU;IAC9C,QAAQ,CAAC,QAAQ,eAAe;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAQ;IAE7C;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,EAAE,OAAO,CAAS;IAEhD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,WAAW,CAA8B;gBAErC,MAAM,EAAE,sBAAsB;YAK5B,iBAAiB;IAmC/B;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,OAAO,CACX,OAAO,EAAE,2BAA2B,GACnC,OAAO,CAAC,sBAAsB,CAAC;CAwBnC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { loadModel, unloadModel, embed, isModelLoaded, } from "./native-binding.js";
|
|
2
|
+
export class LlamaCppEmbeddingModel {
|
|
3
|
+
specificationVersion = "v3";
|
|
4
|
+
provider = "llama.cpp";
|
|
5
|
+
modelId;
|
|
6
|
+
/**
|
|
7
|
+
* Maximum number of embeddings that can be generated in a single call.
|
|
8
|
+
* Local models can handle large batches, but we limit to prevent memory issues.
|
|
9
|
+
*/
|
|
10
|
+
maxEmbeddingsPerCall = 2048;
|
|
11
|
+
/**
|
|
12
|
+
* Whether the model supports parallel calls.
|
|
13
|
+
* We use a single model instance, so parallel calls are not supported.
|
|
14
|
+
*/
|
|
15
|
+
supportsParallelCalls = false;
|
|
16
|
+
modelHandle = null;
|
|
17
|
+
config;
|
|
18
|
+
initPromise = null;
|
|
19
|
+
constructor(config) {
|
|
20
|
+
this.config = config;
|
|
21
|
+
this.modelId = config.modelPath;
|
|
22
|
+
}
|
|
23
|
+
async ensureModelLoaded() {
|
|
24
|
+
if (this.modelHandle !== null && isModelLoaded(this.modelHandle)) {
|
|
25
|
+
return this.modelHandle;
|
|
26
|
+
}
|
|
27
|
+
if (this.initPromise) {
|
|
28
|
+
await this.initPromise;
|
|
29
|
+
if (this.modelHandle !== null) {
|
|
30
|
+
return this.modelHandle;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
this.initPromise = (async () => {
|
|
34
|
+
const options = {
|
|
35
|
+
modelPath: this.config.modelPath,
|
|
36
|
+
contextSize: this.config.contextSize ?? 2048,
|
|
37
|
+
gpuLayers: this.config.gpuLayers ?? 99,
|
|
38
|
+
threads: this.config.threads ?? 4,
|
|
39
|
+
debug: this.config.debug ?? false,
|
|
40
|
+
embedding: true,
|
|
41
|
+
};
|
|
42
|
+
this.modelHandle = await loadModel(options);
|
|
43
|
+
})();
|
|
44
|
+
await this.initPromise;
|
|
45
|
+
this.initPromise = null;
|
|
46
|
+
if (this.modelHandle === null) {
|
|
47
|
+
throw new Error("Failed to load embedding model");
|
|
48
|
+
}
|
|
49
|
+
return this.modelHandle;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Dispose of the model and free resources.
|
|
53
|
+
*/
|
|
54
|
+
async dispose() {
|
|
55
|
+
if (this.modelHandle !== null) {
|
|
56
|
+
unloadModel(this.modelHandle);
|
|
57
|
+
this.modelHandle = null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
async doEmbed(options) {
|
|
61
|
+
const handle = await this.ensureModelLoaded();
|
|
62
|
+
const embedOptions = {
|
|
63
|
+
texts: options.values,
|
|
64
|
+
};
|
|
65
|
+
const result = await embed(handle, embedOptions);
|
|
66
|
+
// Convert Float32Array[] to number[][]
|
|
67
|
+
const embeddings = result.embeddings.map((embedding) => Array.from(embedding));
|
|
68
|
+
const warnings = [];
|
|
69
|
+
return {
|
|
70
|
+
embeddings,
|
|
71
|
+
usage: {
|
|
72
|
+
tokens: result.totalTokens,
|
|
73
|
+
},
|
|
74
|
+
warnings,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=llama-cpp-embedding-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llama-cpp-embedding-model.js","sourceRoot":"","sources":["../src/llama-cpp-embedding-model.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,SAAS,EACT,WAAW,EACX,KAAK,EACL,aAAa,GAGd,MAAM,qBAAqB,CAAC;AAG7B,MAAM,OAAO,sBAAsB;IACxB,oBAAoB,GAAG,IAAa,CAAC;IACrC,QAAQ,GAAG,WAAW,CAAC;IACvB,OAAO,CAAS;IAEzB;;;OAGG;IACM,oBAAoB,GAAW,IAAI,CAAC;IAE7C;;;OAGG;IACM,qBAAqB,GAAY,KAAK,CAAC;IAExC,WAAW,GAAkB,IAAI,CAAC;IACzB,MAAM,CAAyB;IACxC,WAAW,GAAyB,IAAI,CAAC;IAEjD,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC;IAClC,CAAC;IAEO,KAAK,CAAC,iBAAiB;QAC7B,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACjE,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAED,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC;YACvB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC9B,OAAO,IAAI,CAAC,WAAW,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE;YAC7B,MAAM,OAAO,GAAqB;gBAChC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,IAAI;gBAC5C,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE;gBACtC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC;gBACjC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK;gBACjC,SAAS,EAAE,IAAI;aAChB,CAAC;YAEF,IAAI,CAAC,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,IAAI,CAAC,WAAW,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAExB,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACpD,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CACX,OAAoC;QAEpC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAE9C,MAAM,YAAY,GAAiB;YACjC,KAAK,EAAE,OAAO,CAAC,MAAM;SACtB,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAEjD,uCAAuC;QACvC,MAAM,UAAU,GAAe,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CACjE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CACtB,CAAC;QAEF,MAAM,QAAQ,GAAsB,EAAE,CAAC;QAEvC,OAAO;YACL,UAAU;YACV,KAAK,EAAE;gBACL,MAAM,EAAE,MAAM,CAAC,WAAW;aAC3B;YACD,QAAQ;SACT,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3FinishReason, LanguageModelV3GenerateResult, LanguageModelV3Message, LanguageModelV3StreamResult, LanguageModelV3Usage } from "@ai-sdk/provider";
|
|
2
|
+
import { type ChatMessage } from "./native-binding.js";
|
|
3
|
+
export interface LlamaCppModelConfig {
|
|
4
|
+
modelPath: string;
|
|
5
|
+
contextSize?: number;
|
|
6
|
+
gpuLayers?: number;
|
|
7
|
+
threads?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Enable verbose debug output from llama.cpp.
|
|
10
|
+
* Default: false
|
|
11
|
+
*/
|
|
12
|
+
debug?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Chat template to use for formatting messages.
|
|
15
|
+
* - "auto" (default): Use the template embedded in the GGUF model file
|
|
16
|
+
* - Template name: Use a specific built-in template (e.g., "llama3", "chatml", "gemma")
|
|
17
|
+
*
|
|
18
|
+
* Available templates: chatml, llama2, llama2-sys, llama3, llama4, mistral-v1,
|
|
19
|
+
* mistral-v3, mistral-v7, phi3, phi4, gemma, falcon3, zephyr, deepseek, deepseek2,
|
|
20
|
+
* deepseek3, command-r, and more.
|
|
21
|
+
*/
|
|
22
|
+
chatTemplate?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface LlamaCppGenerationConfig {
|
|
25
|
+
maxTokens?: number;
|
|
26
|
+
temperature?: number;
|
|
27
|
+
topP?: number;
|
|
28
|
+
topK?: number;
|
|
29
|
+
stopSequences?: string[];
|
|
30
|
+
}
|
|
31
|
+
export declare function convertFinishReason(reason: string): LanguageModelV3FinishReason;
|
|
32
|
+
export declare function convertUsage(promptTokens: number, completionTokens: number): LanguageModelV3Usage;
|
|
33
|
+
/**
|
|
34
|
+
* Convert AI SDK messages to simple role/content format for the native layer.
|
|
35
|
+
* The native layer will apply the appropriate chat template.
|
|
36
|
+
*/
|
|
37
|
+
export declare function convertMessages(messages: LanguageModelV3Message[]): ChatMessage[];
|
|
38
|
+
export declare class LlamaCppLanguageModel implements LanguageModelV3 {
|
|
39
|
+
readonly specificationVersion: "v3";
|
|
40
|
+
readonly provider = "llama.cpp";
|
|
41
|
+
readonly modelId: string;
|
|
42
|
+
/**
|
|
43
|
+
* Supported URL patterns - empty since we only support local files
|
|
44
|
+
*/
|
|
45
|
+
readonly supportedUrls: Record<string, RegExp[]>;
|
|
46
|
+
private modelHandle;
|
|
47
|
+
private readonly config;
|
|
48
|
+
private initPromise;
|
|
49
|
+
constructor(config: LlamaCppModelConfig);
|
|
50
|
+
private ensureModelLoaded;
|
|
51
|
+
dispose(): Promise<void>;
|
|
52
|
+
doGenerate(options: LanguageModelV3CallOptions): Promise<LanguageModelV3GenerateResult>;
|
|
53
|
+
doStream(options: LanguageModelV3CallOptions): Promise<LanguageModelV3StreamResult>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=llama-cpp-language-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llama-cpp-language-model.d.ts","sourceRoot":"","sources":["../src/llama-cpp-language-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,0BAA0B,EAE1B,2BAA2B,EAC3B,6BAA6B,EAC7B,sBAAsB,EAEtB,2BAA2B,EAC3B,oBAAoB,EAErB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,GACb,2BAA2B,CAa7B;AAED,wBAAgB,YAAY,CAC1B,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB,oBAAoB,CActB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,sBAAsB,EAAE,GAAG,WAAW,EAAE,CA6CjF;AAED,qBAAa,qBAAsB,YAAW,eAAe;IAC3D,QAAQ,CAAC,oBAAoB,EAAG,IAAI,CAAU;IAC9C,QAAQ,CAAC,QAAQ,eAAe;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAM;IAEtD,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,WAAW,CAA8B;gBAErC,MAAM,EAAE,mBAAmB;YAKzB,iBAAiB;IAmCzB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxB,UAAU,CACd,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,6BAA6B,CAAC;IAsCnC,QAAQ,CACZ,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,2BAA2B,CAAC;CA0ExC"}
|