AntSK 0.2.3 版本更新:轻松集成 AI 本地离线模型

大家好,今天和大家分享 AntSK 知识库/智能体项目的最新进展。

AntSK 是一个基于**.Net 8、Blazor** 及 SemanticKernel开发的 AI 项目,旨在为开发者提供一个强大的 AI 知识库与智能体平台。最新版本的项目可以在 GitHub 上找到:

复制代码
https://github.com/AIDotNet/AntSK

在 AntSK 之前的版本中,我们已经成功地整合了使用 LLamaSharp 加载本地模型的 gguf 类型,但我们并没有就此止步。为了进一步支持更多类型的本地模型,并便于测试不同模型的表现,我们更新了项目,加入了 llamafactory的集成,并且着手准备接下来的模型微调功能。

下面是我们对 llamafactory集成工作的一个概述:

我们知道,.Net 平台在运行 AI 模型推理和训练方面的组件库并不如 Python 那样丰富(虽然博主也是主技能.Net )。因此,我们这次选择了一个工程上的简化方案:直接将 llamafactory 的核心文件集成到 AntSK 项目中,并通过使用 llamafactory 的 API 来完成集成,而非直接使用 python.net。这样做的主要目的是降低使用门槛,即便是对 Python 不够熟悉的开发者也能够轻松上手。

首先,我们将 llamafactory核心文件整合到了项目中,见下图:

我们原先考虑通过 python.net 来完成集成,但后来发现那样会增加很多工作量。因此转而采用了一个间接的方法:自动通过 AntSK 安装依赖并启动 llamafactory

代码实例 1:安装python 环境以及安装 llamafactory所需的依赖包

复制代码
 public async Task PipInstall()
 {

     var cmdTask = Task.Factory.StartNew(() =>
     {

         var isProcessComplete = false;

         process = new Process
         {
             StartInfo = new ProcessStartInfo
             {
                 FileName = "pip",
                 Arguments = "install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple",
                 UseShellExecute = false,
                 RedirectStandardOutput = true,
                 RedirectStandardError = true,
                 WorkingDirectory = AppDomain.CurrentDomain.BaseDirectory,
             }
         };  
         process.OutputDataReceived += (sender, eventArgs) =>
         {
             Console.WriteLine($"{eventArgs.Data}");
             OnLogMessageReceived(eventArgs.Data);
         };
         process.ErrorDataReceived += (sender, eventArgs) =>
         {
             Console.WriteLine($"{eventArgs.Data}");
             OnLogMessageReceived(eventArgs.Data);
         };
         process.Start();
         process.BeginOutputReadLine();
         process.BeginErrorReadLine();
         process.WaitForExit();
     }, TaskCreationOptions.LongRunning);
 }

  代码实例 2:启动 llamafactory并指定模型及模板

复制代码
public async Task StartLLamaFactory(string modelName, string templateName)
 {
     var cmdTask = Task.Factory.StartNew(() =>
     {

         var isProcessComplete = false;

         process = new Process
         {
             StartInfo = new ProcessStartInfo
             {
                 FileName = "python",
                 Arguments = "api_demo.py --model_name_or_path " + modelName + " --template " + templateName + " ",
                 UseShellExecute = false,
                 RedirectStandardOutput = true,
                 RedirectStandardError=true,
                 WorkingDirectory = Path.Combine(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location), "llamafactory"),
             }
         };
         process.StartInfo.Environment["CUDA_VISIBLE_DEVICES"] = "0";
         process.StartInfo.Environment["API_PORT"] = "8000";
         process.StartInfo.EnvironmentVariables["USE_MODELSCOPE_HUB"] = "1";
         process.OutputDataReceived += (sender, eventArgs) =>
         {
             Console.WriteLine($"{eventArgs.Data}");
             OnLogMessageReceived(eventArgs.Data);
         };
         process.ErrorDataReceived += (sender, eventArgs) =>
         {
             Console.WriteLine($"{eventArgs.Data}");
             OnLogMessageReceived(eventArgs.Data);
         };
         process.Start();
         process.BeginOutputReadLine();
         process.BeginErrorReadLine();
         process.WaitForExit();
     }, TaskCreationOptions.LongRunning);
 }

  

随后,我们将模型的 API 地址设置为了 llamafactory 的代理地址。这个简化的流程使得我们能够迅速使用 llamafactory

效果展示:

  在创建模型时,选择LLamaFactory ,然后我们就可以选择很多魔塔的本地模型

选择好后我们点击启动。

为了更容易看到安装依赖和运行llamafactory的日志,我们加入了类似控制台的显示组件:

等待模型下载结束后,我们在请求地址中设置llamafactory 的服务地址(这里默认配置的是8000端口

然后我们就可以开始聊天了!!

通过AntSK可以非常容易集成各种本地模型进行使用。

我们下一步将会集成bgeembedding 模型,以及如何在AntSK中实现rerank

更进一步,我们的下一步计划是集成模型微调功能,为此,我们已经在布局相关工作。希望大家继续关注我的公众号,持续跟进我们的最新动态!未来,让我们共同见证 AntSK 如何使 AI 集成更加简单化、智能化。

相关推荐
周航宇JoeZhou8 小时前
JB3-9-SpringAI(二)
java·ai·agent·多智能体·调度·智能体·观察
Tbisnic8 小时前
AI大模型学习第十一天:技术选型、安全防护与金融实战
python·学习·ai·大模型·提示词工程
AI工具挖掘机9 小时前
Codex 桌面版上手:从安装到自己开发首个小游戏,0 基础快速入门,手把手教学
经验分享·ai·ai编程
凉菜凉凉9 小时前
AI时代,被抛弃的前端
前端·ai
不吃青椒!12 小时前
LangGraph 流式事件处理:从实战到体系
ai·langchain·状态模式
DS随心转插件12 小时前
AI 导出鸭实测:Markdown TO Word 本地化转换能力深度评测,多角度拆解本地化转换真实表现
人工智能·ai·word·wps·deepseek·ai导出鸭
财经资讯数据_灵砚智能12 小时前
基于全球经济类多源新闻的NLP情感分析与数据可视化(夜间-次晨)2026年6月10日
大数据·人工智能·python·ai·信息可视化·自然语言处理·灵砚智能
OpenAnolis小助手13 小时前
如何利用 AI Agent 实现热补丁的自动化生成
人工智能·安全·ai·操作系统·agent·龙蜥
DS随心转插件13 小时前
AI 导出鸭实操教程:Markdown 转 Word 高效协作与隐私交付实战指南
人工智能·ai·word·豆包·deepseek·ai导出鸭
xiami_world14 小时前
私有化部署协同白板选型指南:从Docker容器化到信创全栈适配的架构实践
运维·人工智能·docker·ai·持续部署