Senparc 全家桶的 AI 扩展包,目前主要集中于 LLM(大语言模型)的交互。
Senparc.AI
为所有标准接口和基础功能的基础模块
Senparc.AI.Kernel
为基于 Senparc.AI 标准,使用 SemanticKernel 实现的接口调用,可以实现即插即用。
在 appsettings.json 中配置 OpenAI 或 Azure OpenAI 的接口信息,如:
//CO2NET 设置
"SenparcSetting": {
"IsDebug": true,
"DefaultCacheNamespace": "DefaultCacheTest"
},
//Senparc.AI 设置
"SenparcAiSetting": {
"IsDebug": true,
"AiPlatform": "NeuCharOpenAI",
"NeuCharOpenAIKeys": {
"ApiKey": "YourNeuCharApiKey",
"NeuCharEndpoint": "https://www.neuchar.com/<DeveloperId>/"
},
"AzureOpenAIKeys": {
"ApiKey": "YourAzureApiKey",
"AzureEndpoint": "https://xxxx.openai.azure.com/",
"AzureOpenAIApiVersion": "2022-12-01"
},
"OpenAIKeys": {
"ApiKey": "YourOpenAIKey",
"OrgaizationId": "YourOpenAIOrgId"
}
}
其中:AiPlatform
目前可选值为 OpenAI
、NeuCharOpenAI
或 AzureOpenAI
,分别对应 openai.com 官方接口(OpenAI),以及 https://www.neuchar.com 由 Senparc 提供的中转接口,及基于微软 Azure 的 Azure OpenAI 接口(AOAI),系统会根据配置自动实现切换,无需在逻辑代码中进行判断。
仅当 AiPlatform
设置为 OpenAI
时,才需要设置 OpenAIKeys
及以下参数。
仅当 AiPlatform
设置为 NeuCharOpenAI
时,才需要设置 NeuCharOpenAIKeys
及以下参数。
仅当 AiPlatform
设置为 AzureOpenAI
时,才需要设置 AzureOpenAIKeys
及以下参数。
提示:AzureOpenAI 调用限制请参考:https://learn.microsoft.com/en-us/azure/cognitive-services/openai/quotas-limits
OpenAI 调用限制请参考 OpenAI 后台:https://platform.openai.com/docs/guides/rate-limits
Senparc.AI 使用了创新的对话式编程体验,您无需了解过多不同平台、SDK 的详细用法,只需要按照自己的想法进行定义和编程,最后接收结果,以目前最火的聊天场景(Chat)为例:
// 创建 AI Handler 处理器(也可以通过工厂依赖注入)
var handler = new SemanticAiHandler();
// 定义 AI 接口调用参数和 Token 限制等
var promptParameter = new PromptConfigParameter()
{
MaxTokens = 2000,
Temperature = 0.7,
TopP = 0.5,
};
// 准备运行
var userId = "JeffreySu";//区分用户
var modelName = "text-davinci-003";//默认使用模型
var iWantToRun =
handler.IWantTo()
.ConfigModel(ConfigModel.TextCompletion, userId, modelName)
.BuildKernel()
.RegisterSemanticFunction("ChatBot", "Chat", promptParameter)
.iWantToRun;
// 输入/提问,获取结果
var prompt = "请问**有多少人口?";
var aiRequest = iWantToRun.CreateRequest(prompt, true, true);
var aiResult = await iWantToRun.RunAsync(aiRequest);
//aiResult.Result 结果:**的人口约为13.8亿。
所有快速参考示例位于 /Samples/
文件夹内
文件夹 | 说明 |
---|---|
Samples/Senparc.AI.Samples.Consoles | 命令行 |
打开解决方案 Senparc.AI.sln
,设置 appsettings.json 中 ApiKey 等平台参数,启动项目 Senparc.AI.Samples.Consoles
:
输入 1
,进入对话操作:
在上一步输入 2
即可进入 Embedding 操作,Embedding 分为常规信息和引用信息两类,将在下一步中做选择:
选择 1
,进入到常规 Embedding 测试,输入信息由 3 个英文冒号分割,录入完成后输入 n
开始对话测试:
2.2.2 上一步选择 2
,进入到引用 Embedding 测试,输入信息由 3 个英文冒号分割,录入完成后输入 n
开始对话测试:
初始界面中输入 3
,进入 DallE 接口的绘图操作:
结果将以 URL 的形式返回,此时出入 s
,可保存图片到本地:
注意:接口返回的 URL 是一个暂存地址,不可用于持久化的展示,需要及时保存,
- 实现更多模型和模式的匹配。
- 实现全自动的工厂模块自动配置。
- 集成到 Senaprc.Weixin SDK,0 逻辑代码实现 AI 能力接入(聊天场景为主)。
- 集成到 NeuCharFramework,0 逻辑代码实现 AI 能力接入(开发和云运营场景为主)。