@langchain/community
Version:
Third-party integrations for LangChain.js
44 lines (43 loc) • 1.44 kB
JavaScript
import { LlamaChatSession } from "node-llama-cpp";
//#region src/utils/llama_cpp.ts
async function createLlamaModel(inputs, llama) {
const options = {
gpuLayers: inputs?.gpuLayers,
modelPath: inputs.modelPath,
useMlock: inputs?.useMlock,
useMmap: inputs?.useMmap,
vocabOnly: inputs?.vocabOnly
};
return llama.loadModel(options);
}
async function createLlamaContext(model, inputs) {
const options = {
batchSize: inputs?.batchSize,
contextSize: inputs?.contextSize,
threads: inputs?.threads
};
return model.createContext(options);
}
async function createLlamaEmbeddingContext(model, inputs) {
const options = {
batchSize: inputs?.batchSize,
contextSize: inputs?.contextSize,
threads: inputs?.threads
};
return model.createEmbeddingContext(options);
}
function createLlamaSession(context) {
return new LlamaChatSession({ contextSequence: context.getSequence() });
}
async function createLlamaJsonSchemaGrammar(schemaString, llama) {
if (schemaString === void 0) return;
const schemaJSON = schemaString;
return await llama.createGrammarForJsonSchema(schemaJSON);
}
async function createCustomGrammar(filePath, llama) {
if (filePath === void 0) return;
return llama.createGrammar({ grammar: filePath });
}
//#endregion
export { createCustomGrammar, createLlamaContext, createLlamaEmbeddingContext, createLlamaJsonSchemaGrammar, createLlamaModel, createLlamaSession };
//# sourceMappingURL=llama_cpp.js.map