大家好,今天我给大家介绍一下大模型应用相关的学习成果。
自从基于AntDesign Blazor 和 Semantic Kernel 的大模型应用项目 AntSK 启动以来,我就在跟作者密切合作。但也是在最近一周我才开始review当前的版本。对SK很早就跟着各位老师学习,增长了见识和了解,但也仅限于纸上谈兵,直到这周末才带着问题去学习源码,找到接入第三方模型的方法。
所以说,本篇主要是学习笔记,分享我的思考过程。欢迎大家与我交流,一起学习大模型相关的技术。
因为AntSK是开源项目,所以初衷也是想让更多人能在自己的开发环境把AntSK启动起来,参与开源贡献。但当我想运行AntSK的时候,发现并不容易。一来需要Postgre数据库,二来要配置openai服务参数或者llama模型文件目录。这对于新手的我其实就并不友好。我希望一运行就能起来,即使功能缺失,但至少在关键的第一步没有问题,不然就要劝退了。
经过跟作者沟通,他动作也很快,把模型配置做成了动态的在线配置,数据库也改成默认sqlite,现在项目克隆下来后就能直接运行了。接下来就是具体模型配置的问题了。
由于AntSK对接大模型是基于SK的,在之前只支持OpenAI和llama本地模型,但我只有Azure OpenAI 服务的额度,而本地模型的运行配置要求又达不到,我想很多人都跟我一样啊!甚至没有Azure,只有国内模型的免费额度,那AntSK还怎么跑起来?
于是我跟作者讨论,SK是支持Azure的,只是配置有所不同。于是我就尝试改造了一下,轻松的实现了。这功能已经被作者很快的加上了。但新的问题又来了,对于还有很多人没Azure啊,那怎么才能让他们把AntSK 启动起来呢?
一开始我是想加个内存模拟模型,让大家调试UI的时候可以不真正耗费额度,降低贡献成本。但是经过我对源码的研究,发现AntSK的抽象程度和扩展性还不够,对话直接依赖了SK,于是只能从对接SK入手了。
我从LlamaSharp的SK扩展了解到,只需要实现ITextExecutionService和IAIService接口,就能对接大模型的对话功能了。
正好周杰老师在周六发布了讯飞星火的sdk,于是一拍即合,实现了星火的对接。
可以看到,通过SK其实是很容易接入其他大模型的,只要先实现大模型的对话接口,然后实现SK的这个ITextGenerationService, IAIService服务,即可接入。
篇幅有限,下回我再给大家讲讲如何在 AntSK 实现本地方法调用,让AI直接驱动我们的真实业务!