小涛涛 发表于 2026-9-20 12:18:13

AI封的 llama.cpp

本帖最后由 小涛涛 于 2026-9-20 12:26 编辑

我不懂封装,全是AI跑的半成品 ,跑了3天,重复跑了5次才把加载模型和聊天跑通,也不知道封得怎么样 前来询问一下各位大佬,这样行吗 还要注意什么?

https://pan.quark.cn/s/e0c61b9a7155

<火山程序 类型 = "通常" 版本 = 1 />

包 火山.程序

类 llama引擎类 <公开 基础类 = 对象类 注释 = "llama.cpp 内置推理引擎封装(基于ggml官方C API)"
      @文档 = "category = \"AI推理\", author = \"vol_llama\", version = \"1.1.1\""
      @视窗.外部头文件 = "include/llama.h\ninclude/vol_llama_wrapper.h"
      @视窗.外部库 = "llama.lib\nggml.lib\nggml-base.lib\nggml-cpu.lib\nggml-cuda.lib" @视窗.头文件搜寻目录 = "include" @视窗.库文件搜寻目录 = "lib"
      @视窗.附属文件 = "lib\\cublas64_13.dll\nlib\\cublasLt64_13.dll\nlib\\cudart64_13.dll\nlib\\ggml.dll\nlib\\ggml-base.dll\nlib\\ggml-cpu.dll\nlib\\ggml-cuda.dll\nlib\\llama.dll">
{
    方法 初始化后端 <公开 类型 = 逻辑型 注释 = "加载ggml全部后端(CPU/CUDA/Vulkan等),启动后调用一次" @禁止流程检查 = 真>
    {
      @ return LLW_DefaultEngine()->InitBackend();
    }

    方法 加载模型 <公开 类型 = 逻辑型 注释 = "加载GGUF模型;GPU层数999=全部进显存,0=纯CPU" @禁止流程检查 = 真>
    参数 模型路径 <类型 = 文本型>
    参数 GPU层数 <类型 = 整数 注释 = "GPU层数999=全部进显存,0=纯CPU" @默认值 = 999>
    参数 上下文长度 <类型 = 整数 @默认值 = 4096>
    参数 线程数 <类型 = 整数 注释 = "0=使用默认" @默认值 = 0>
    {
      @ return LLW_DefaultEngine()->LoadModel(@<模型路径>.GetText(), @<GPU层数>, @<上下文长度>, @<线程数>);
    }

    方法 卸载模型 <公开 注释 = "释放sampler/上下文/模型" @禁止流程检查 = 真>
    {
      @ LLW_DefaultEngine()->UnloadModel();
    }

    方法 是否已加载 <公开 类型 = 逻辑型 注释 = "模型与上下文是否就绪" @禁止流程检查 = 真>
    {
      @ return LLW_DefaultEngine()->IsModelLoaded();
    }

    方法 生成 <公开 类型 = 文本型 注释 = "同步生成完整回复;会阻塞UI线程,正式版请放后台线程" @禁止流程检查 = 真>
    参数 提问内容 <类型 = 文本型>
    参数 最大Token数 <类型 = 整数>
    参数 温度 <类型 = 小数>
    参数 最小P <类型 = 小数>
    参数 随机种子 <类型 = 整数 注释 = "-1=默认随机种子">
    {
      @ return @an<CVolString>(LLW_DefaultEngine()->Generate(@<提问内容>.GetText(), @<最大Token数>, (float)@<温度>, (float)@<最小P>, @<随机种子>));
    }

    方法 取上下文长度 <公开 类型 = 整数 注释 = "返回当前上下文容量" @禁止流程检查 = 真>
    {
      @ return LLW_DefaultEngine()->GetContextSize();
    }

    方法 取最后错误 <公开 类型 = 文本型 注释 = "取最近一次失败的错误描述" @禁止流程检查 = 真>
    {
      @ return @an<CVolString>(LLW_DefaultEngine()->GetLastError());
    }

    方法 清除错误 <公开 注释 = "清空内部错误状态" @禁止流程检查 = 真>
    {
      @ LLW_DefaultEngine()->ClearError();
    }
}

a759077146 发表于 2026-9-20 17:18:30

牛

000 发表于 2026-9-20 17:21:20

感谢分享!:handshake
页: [1]
查看完整版本: AI封的 llama.cpp