# local-llama-provider **Repository Path**: duzc2/local-llama-provider ## Basic Information - **Project Name**: local-llama-provider - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-27 - **Last Updated**: 2026-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Local Llama Provider 一个在本地运行 Llama 大语言模型的 Provider 实现,支持 Web AI API 和 V3 标准接口。 ## 功能特性 - **本地模型运行**:无需云端 API,直接在本地运行 Llama 模型 - **多模型支持**:支持文本生成、嵌入向量、文档排序等多种模型 - **流式输出**:支持实时流式输出token - **Worker 架构**:使用 Web Worker 实现非阻塞推理 - **V3 标准兼容**:符合 LanguageModelV3 API 标准 ## 核心模块 ### Provider 层 - `LocalLlamaProvider`: 主 Provider 实现 - `LocalLlamaAIProvider`: AI API 兼容接口 - `LocalLlamaV3`: V3 标准接口实现 ### Worker 层 - `llama-worker`: 后台工作线程,处理模型加载、推理、嵌入等任务 ## 安装 ```bash npm install ``` ## 开发 ```bash # TypeScript 编译 npm run build # 运行测试 npm test # 运行单元测试 npm run test:unit # 运行集成测试 npm run test:integration ``` ## 使用示例 ### 基本使用 ```typescript import { LocalLlamaProvider } from 'local-llama-provider'; const provider = new LocalLlamaProvider({ modelPath: './models/llama-7b.bin', workerFactory: undefined, // 可自定义 Worker 工厂 }); // 生成文本 const stream = await provider.create_generation({ prompt: '你好,请介绍一下自己', model: 'llama-7b', }); for await (const chunk of stream) { console.log(chunk); } ``` ### V3 API 使用 ```typescript import { LocalLlamaV3 } from 'local-llama-provider'; const provider = new LocalLlamaV3({ workerPath: './dist/worker/llama-worker.js', }); const { text } = await provider.doGenerate({ prompt: [{ type: 'text', text: '请写一首诗' }], model: 'llama-7b', }); ``` ### 嵌入向量 ```typescript const embeddings = await provider.doEmbed({ content: '需要向量化的文本', }); ``` ## 配置选项 ### LoadConfig - `modelPath`: 模型文件路径 - `model`: 模型名称 - `embedding`: 是否为嵌入模型 - `ranking`: 是否为排序模型 ### GenerateOptions - `temperature`: 温度参数 (0-2) - `top_p`: 核采样参数 - `max_tokens`: 最大生成token数 - `stop`: 停止序列 ## 测试 项目包含完整的单元测试和集成测试: - `test/unit/`: 单元测试 - `test/integration/`: 集成测试(需要下载模型) ## 技术栈 - TypeScript - node-llama-cpp - Vitest (测试框架) ## 许可证 MIT License