Skip to content

Commit 6590930

Browse files
committed
v0.1.2 优化 ReponseMessageFactory,当 OpenAI 未配置时,始终以文字方式返回
1 parent 474766f commit 6590930

File tree

4 files changed

+98
-18
lines changed

4 files changed

+98
-18
lines changed

README.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,81 @@
11
# Senparc.Weixin.AI
22
Senparc.Weixin SDK 的 AI 扩展,赋能微信应用基于 OpenAI API、ChatGPT 等 AIGC 能力。
3+
4+
5+
## 使用说明
6+
7+
> 注意:Senparc.AI 基于 Senparc.CO2NET 等盛派全家桶的能力,可无缝对接到 Senparc.Weixin SDK 项目中。
8+
9+
### 第一步:配置
10+
11+
首先,按照 [Senparc.Weixin SDK](https://github.com/JeffreySu/WeiXinMPSDK) 的标准格式,在 appsettings.json 文件内设置常规的微信配置信息,以公众号为例:
12+
13+
默认项目 appsettings.json 内容如下:
14+
```
15+
{
16+
"Logging": {
17+
"LogLevel": {
18+
"Default": "Information",
19+
"Microsoft.AspNetCore": "Warning"
20+
}
21+
},
22+
"AllowedHosts": "*"
23+
}
24+
```
25+
26+
在 JSON 中添加以下 CO2NET 及 Senaprc.Weixin SDK 配置:
27+
```
28+
{
29+
"Logging": {
30+
"LogLevel": {
31+
"Default": "Information",
32+
"Microsoft.AspNetCore": "Warning"
33+
}
34+
},
35+
"AllowedHosts": "*",
36+
37+
//CO2NET 设置
38+
"SenparcSetting": {
39+
"IsDebug": true,
40+
"DefaultCacheNamespace": "DefaultCacheTest"
41+
},
42+
//Senparc.Weixin SDK 设置
43+
"SenparcWeixinSetting": {
44+
//微信全局
45+
"IsDebug": true,
46+
//公众号
47+
"Token": "YourToken",
48+
"EncodingAESKey": "YourEncodingAESKey",
49+
"WeixinAppId": "YourWeixinAppId",
50+
"WeixinAppSecret": "YourWeixinAppSecret"
51+
}
52+
}
53+
```
54+
55+
为使用 Senaprc.AI,在原有项目配置的基础上,继续追加一段 Senparc.AI 的配置:
56+
57+
```
58+
//Senparc.AI 设置
59+
"SenparcAiSetting": {
60+
"IsDebug": true,
61+
"AiPlatform": "AzureOpenAI",
62+
"AzureOpenAIKeys": {
63+
"ApiKey": "YourAzureApiKey",
64+
"AzureEndpoint": "https://xxxx.openai.azure.com/",
65+
"AzureOpenAIApiVersion": "2022-12-01"
66+
},
67+
"OpenAIKeys": {
68+
"ApiKey": "YourOpenAIKey",
69+
"OrgaizationId": "YourOpenAIOrgId"
70+
}
71+
}
72+
```
73+
74+
> 各项配置含义详见:https://github.com/Senparc/Senparc.AI
75+
76+
### 设置 MessageHandler
77+
78+
> 您可以在已经创建好的 MessageHandler 中继续集成 Senparc.AI(以及 Senparc.Weixin.AI),机器人默认使用文字方式接收和应答,但当内容被判断为需要输出图片时,使用 OpenAI 的 DallE 接口生成图片(注意:如果 `appsettings.json`文件中未配置 OpenAIKeys 信息,将始终使用文字方式返回)。<br>
79+
> 下面以一个全新的文件为例,创建一个对话聊天机器人。
80+
81+

Samples/Senparc.Weixin.AI.MPSample/appsettings.-remove-here-.json

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,24 +12,14 @@
1212
"IsDebug": true,
1313
"DefaultCacheNamespace": "DefaultCacheTest"
1414
},
15-
"SenparcAiSetting": {
16-
"IsDebug": true,
17-
"AiPlatform": "AzureOpenAI",
18-
"ApiKey": "f23272c02aed406b8a214cbbcf0decdf", //TODO:加密
19-
//"ApiKey": "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", //TODO:加密
20-
"OrgaizationId": "org-Bp9B5eGmPFtwDsnIwCV7UjKO",
21-
//当设置 AiPlatform 为 AzureOpenAI 时需要设置以下参数:
22-
"AzureEndpoint": "https://zuibot-test.openai.azure.com/",
23-
"AzureOpenAIApiVersion": "2022-12-01" //调用限制请参考:https://learn.microsoft.com/en-us/azure/cognitive-services/openai/quotas-limits
24-
},
2515
//Senparc.Weixin SDK 设置
2616
"SenparcWeixinSetting": {
2717
//微信全局
2818
"IsDebug": true,
2919
//公众号
30-
"Token": "weixin",
31-
"EncodingAESKey": "",
32-
"WeixinAppId": "wxe273c3a02e09ff8c",
33-
"WeixinAppSecret": "631f30445f640e1a870f1ef79aa543bd"
20+
"Token": "YourToken",
21+
"EncodingAESKey": "YourEncodingAESKey",
22+
"WeixinAppId": "YourWeixinAppId",
23+
"WeixinAppSecret": "YourWeixinAppSecret"
3424
}
3525
}

src/Senparc.Weixin.AI/ReponseMessageFactory.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
using Senparc.Weixin.AI.Entities;
1414
using Senparc.Weixin.AI.WeixinSkills;
1515
using Senparc.Weixin.MP.AdvancedAPIs;
16+
using Senparc.Weixin.MP.Entities;
1617
using System;
1718
using System.IO;
1819
using System.Linq;
@@ -31,6 +32,15 @@ public ReponseMessageFactory(IServiceProvider serviceProvider)
3132

3233
public async Task<string> GetResponseMessageByPlanAsync(IAiHandler aiHandler, string openId, string text)
3334
{
35+
//判断 OpenAI 是否已配置
36+
if (!Senparc.AI.Config.SenparcAiSetting.IsOpenAiKeysSetted)
37+
{
38+
//如果没有配置 OpenAI,则始终使用文字消息
39+
return nameof(ResponseMessageText);
40+
}
41+
42+
//已经配置了 OpenAI,根据用户消息的提示,进行判断
43+
3444
var skAiHandler = aiHandler as Senparc.AI.Kernel.SemanticAiHandler;
3545
var iWantToRun = skAiHandler
3646
.IWantTo()

src/Senparc.Weixin.AI/Senparc.Weixin.AI.csproj

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<TargetFramework>netstandard2.1</TargetFramework>
5-
<Version>0.1.1-beta1</Version>
5+
<Version>0.1.2-beta1</Version>
66
<Nullable>enable</Nullable>
77
<LangVersion>10.0</LangVersion>
88
<AssemblyName>Senparc.Weixin.AI</AssemblyName>
@@ -26,7 +26,8 @@
2626
<PackageIcon>icon.jpg</PackageIcon>
2727
<PackageReleaseNotes>
2828
v0.1.0 创世
29-
29+
v0.1.1 提供 ReponseMessageFactory 等基础设施,完成使用 GPT 判断用户对话意图
30+
v0.1.2 优化 ReponseMessageFactory,当 OpenAI 未配置时,始终以文字方式返回
3031
</PackageReleaseNotes>
3132
<RepositoryUrl>https://github.com/Senparc/Senparc.Weixin.AI</RepositoryUrl>
3233
<Configurations>Debug;Release;Test</Configurations>
@@ -80,9 +81,9 @@
8081
8182
<PackageReference Include="Senparc.AI.Kernel" Version="0.1.3-beta1" />-->
8283

83-
<PackageReference Include="Senparc.AI" Version="0.1.4.1-beta1" />
84+
<PackageReference Include="Senparc.AI" Version="0.1.4.2-beta1" />
8485

85-
<PackageReference Include="Senparc.AI.Kernel" Version="0.1.4.1-beta1" />
86+
<PackageReference Include="Senparc.AI.Kernel" Version="0.1.4.2-beta1" />
8687

8788
<PackageReference Include="Senparc.NeuChar" Version="2.1.3.6" />
8889

0 commit comments

Comments
 (0)