https://github.com/hlhr202/llama-node
起因是为了方便自己调用,又希望降低 llama.cpp 和 llama-rs 的调用门槛,我研究了一下 meta 开源的 llama 社区项目,最终找到了 llama-rs 这个 rust 库。
https://github.com/setzer22/llama-rs
对 rust 确实不太熟,还是喜欢留在 typescript 的安全区,所以决定用 llama-rs 写一个 nodejs 的库。
node addon 方面选择了 @太狼 大佬的 napi-rs 。
用法展示:
import path from "path";
import { LLamaClient } from "llama-node";
const model = path.resolve(process.cwd(), "./ggml-alpaca-7b-q4.bin");
const client = new LLamaClient({ path: model, numCtxTokens: 4096 }, true);
const prompt = `// Show an example of counter component in react.js. it has increment and decrement buttons where they change the state by 1.
export const Counter => {`;
client.createTextCompletion(
{
prompt,
numPredict: BigInt(2048),
temp: 0.2,
topP: 0.8,
topK: BigInt(40),
repeatPenalty: 1,
repeatLastN: BigInt(512),
},
(res) => {
process.stdout.write(res.token);
}
);
结论还是:写 ai 程序也是撸 typescript 更快。。。就这样先将就用着吧。rust 写的不好,各位看官轻喷。
const, TypeScript, llama, llama-rs