From f54b655efc90158ffaa5c52eae20c55b77b89e44 Mon Sep 17 00:00:00 2001 From: Fu Diwei Date: Fri, 8 Oct 2021 14:55:48 +0800 Subject: [PATCH] =?UTF-8?q?feat(openai):=20=E6=96=B0=E5=A2=9E=E6=9C=BA?= =?UTF-8?q?=E5=99=A8=E4=BA=BA=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WechatOpenAIClientExecuteApiExtensions.cs | 52 ++++ .../WechatOpenAIClientExecuteBotExtensions.cs | 223 ++++++++++++++++++ ...AIClientExecuteUnmatchedClassExtensions.cs | 52 ++++ .../Models/Api/ApiGetWelcomeMessageRequest.cs | 25 ++ .../Api/ApiGetWelcomeMessageResponse.cs | 79 +++++++ .../Models/Api/ApiSetWelcomeMessageRequest.cs | 60 +++++ .../Api/ApiSetWelcomeMessageResponse.cs | 12 + .../Models/Async/AsyncFetchRequest.cs | 2 +- .../Models/Async/AsyncFetchResponse.cs | 8 +- .../Models/Bot/BotDeleteRequest.cs | 12 + .../Models/Bot/BotDeleteResponse.cs | 24 ++ .../Models/Bot/BotEffectiveProgressRequest.cs | 18 ++ .../Bot/BotEffectiveProgressResponse.cs | 31 +++ .../Models/Bot/BotExportRequest.cs | 12 + .../Models/Bot/BotExportResponse.cs | 24 ++ .../Models/Bot/BotGetDetailRequest.cs | 12 + .../Models/Bot/BotGetDetailResponse.cs | 101 ++++++++ .../Models/Bot/BotGetListRequest.cs | 41 ++++ .../Models/Bot/BotGetListResponse.cs | 86 +++++++ .../Models/Bot/BotImportJsonRequest.cs | 81 +++++++ .../Models/Bot/BotImportJsonResponse.cs | 24 ++ .../Models/Bot/BotImportRequest.cs | 25 ++ .../Models/Bot/BotImportResponse.cs | 24 ++ .../Models/Bot/BotPublishGetRecordRequest.cs | 27 +++ .../Models/Bot/BotPublishGetRecordResponse.cs | 81 +++++++ .../Models/Bot/BotPublishRequest.cs | 12 + .../Models/Bot/BotPublishResponse.cs | 24 ++ .../Models/Bot/BotSaveRequest.cs | 88 +++++++ .../Models/Bot/BotSaveResponse.cs | 24 ++ .../Models/Bot/BotTestRequest.cs | 18 ++ .../Models/Bot/BotTestResponse.cs | 95 ++++++++ .../UnmatchedClassDetailRequest.cs | 49 ++++ .../UnmatchedClassDetailResponse.cs | 72 ++++++ .../UnmatchedClassListRequest.cs | 42 ++++ .../UnmatchedClassListResponse.cs | 72 ++++++ .../Api/ApiGetWelcomeMessageRequest.json | 3 + .../Api/ApiGetWelcomeMessageResponse.json | 18 ++ .../Api/ApiSetWelcomeMessageRequest.json | 9 + .../Api/ApiSetWelcomeMessageResponse.json | 4 + .../ModelSamples/Bot/BotDeleteRequest.json | 1 + .../ModelSamples/Bot/BotDeleteResponse.json | 8 + .../Bot/BotEffectiveProgressRequest.json | 3 + .../Bot/BotEffectiveProgressResponse.json | 9 + .../ModelSamples/Bot/BotExportRequest.json | 1 + .../ModelSamples/Bot/BotExportResponse.json | 8 + .../ModelSamples/Bot/BotGetDetailRequest.json | 1 + .../Bot/BotGetDetailResponse.json | 19 ++ .../ModelSamples/Bot/BotGetListRequest.json | 6 + .../ModelSamples/Bot/BotGetListResponse.json | 40 ++++ .../Bot/BotImportJsonRequest.json | 19 ++ .../Bot/BotImportJsonResponse.json | 8 + .../ModelSamples/Bot/BotImportRequest.json | 4 + .../ModelSamples/Bot/BotImportResponse.json | 8 + .../Bot/BotPublishGetRecordRequest.json | 4 + .../Bot/BotPublishGetRecordResponse.json | 34 +++ .../ModelSamples/Bot/BotPublishRequest.json | 1 + .../ModelSamples/Bot/BotPublishResponse.json | 8 + .../ModelSamples/Bot/BotSaveRequest.json | 13 + .../ModelSamples/Bot/BotSaveResponse.json | 8 + .../ModelSamples/Bot/BotTestRequest.json | 1 + .../ModelSamples/Bot/BotTestResponse.json | 18 ++ .../UnmatchedClassDetailRequest.json | 7 + .../UnmatchedClassDetailResponse.json | 17 ++ .../UnmatchedClassListRequest.json | 6 + .../UnmatchedClassListResponse.json | 17 ++ 65 files changed, 1930 insertions(+), 5 deletions(-) create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteApiExtensions.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteBotExtensions.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteUnmatchedClassExtensions.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiGetWelcomeMessageRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiGetWelcomeMessageResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiSetWelcomeMessageRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiSetWelcomeMessageResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotDeleteRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotDeleteResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotEffectiveProgressRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotEffectiveProgressResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotExportRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotExportResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetDetailRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetDetailResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetListResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportJsonRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportJsonResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishGetRecordRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishGetRecordResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotSaveRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotSaveResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotTestRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotTestResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassDetailRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassDetailResponse.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassListRequest.cs create mode 100644 src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassListResponse.cs create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiGetWelcomeMessageRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiGetWelcomeMessageResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiSetWelcomeMessageRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiSetWelcomeMessageResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotDeleteRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotDeleteResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotEffectiveProgressRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotEffectiveProgressResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotExportRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotExportResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetDetailRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetDetailResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetListRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetListResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportJsonRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportJsonResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishGetRecordRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishGetRecordResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotSaveRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotSaveResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotTestRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotTestResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassDetailRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassDetailResponse.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassListRequest.json create mode 100644 test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassListResponse.json diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteApiExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteApiExtensions.cs new file mode 100644 index 00000000..27d2672c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteApiExtensions.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI +{ + public static class WechatOpenAIClientExecuteApiExtensions + { + /// + /// 异步调用 [POST] /v2/api/get_welcome_msg 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/get_welcomemsg.html + /// + /// + /// + /// + /// + public static async Task ExecuteApiGetWelcomeMessageAsync(this WechatOpenAIClient client, Models.ApiGetWelcomeMessageRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v2", "api", "get_welcome_msg"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /v2/api/set_welcome_msg 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/set_welcomemsg.html + /// + /// + /// + /// + /// + public static async Task ExecuteApiSetWelcomeMessageAsync(this WechatOpenAIClient client, Models.ApiSetWelcomeMessageRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v2", "api", "set_welcome_msg"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteBotExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteBotExtensions.cs new file mode 100644 index 00000000..72c014a7 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteBotExtensions.cs @@ -0,0 +1,223 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI +{ + public static class WechatOpenAIClientExecuteBotExtensions + { + /// + /// 异步调用 [POST] /v2/bot/save 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/save.html + /// + /// + /// + /// + /// + public static async Task ExecuteBotSaveAsync(this WechatOpenAIClient client, Models.BotSaveRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v2", "bot", "save"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /v2/bot/get_detail 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/get_detail.html + /// + /// + /// + /// + /// + public static async Task ExecuteBotGetDetailAsync(this WechatOpenAIClient client, Models.BotGetDetailRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Get, "v2", "bot", "get_detail"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /v2/bot/delete 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/save.html + /// + /// + /// + /// + /// + public static async Task ExecuteBotDeleteAsync(this WechatOpenAIClient client, Models.BotDeleteRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v2", "bot", "delete"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /v2/bot/get_list 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/get_list.html + /// + /// + /// + /// + /// + public static async Task ExecuteBotGetListAsync(this WechatOpenAIClient client, Models.BotGetListRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v2", "bot", "get_list"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /v1/bot/import 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/import.html + /// + /// + /// + /// + /// + public static async Task ExecuteBotImportAsync(this WechatOpenAIClient client, Models.BotImportRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v1", "bot", "import"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /v1/bot/export 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/export.html + /// + /// + /// + /// + /// + public static async Task ExecuteBotExportAsync(this WechatOpenAIClient client, Models.BotExportRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Get, "v1", "bot", "export"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /v2/bot/publish 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/publish.html + /// + /// + /// + /// + /// + public static async Task ExecuteBotPublishAsync(this WechatOpenAIClient client, Models.BotPublishRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v2", "bot", "publish"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /v2/bot/publish/get_record 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/get_publish_record.html + /// + /// + /// + /// + /// + public static async Task ExecuteBotPublishGetRecordAsync(this WechatOpenAIClient client, Models.BotPublishGetRecordRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v2", "bot", "publish", "get_record"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /v1/bot/import/json 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/json_import.html + /// + /// + /// + /// + /// + public static async Task ExecuteBotImportJsonAsync(this WechatOpenAIClient client, Models.BotImportJsonRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v1", "bot", "import", "json"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [GET] /v1/bot/test 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/test.html + /// + /// + /// + /// + /// + public static async Task ExecuteBotTestAsync(this WechatOpenAIClient client, Models.BotTestRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Get, "v1", "bot", "test"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /v2/bot/effective_progress 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/effective_progress.html + /// + /// + /// + /// + /// + public static async Task ExecuteBotEffectiveProgressAsync(this WechatOpenAIClient client, Models.BotEffectiveProgressRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v2", "bot", "effective_progress"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteUnmatchedClassExtensions.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteUnmatchedClassExtensions.cs new file mode 100644 index 00000000..a9b324b1 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Extensions/WechatOpenAIClientExecuteUnmatchedClassExtensions.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Net.Http; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Flurl; +using Flurl.Http; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI +{ + public static class WechatOpenAIClientExecuteUnmatchedClassExtensions + { + /// + /// 异步调用 [POST] /v1/unmatched/class/list 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/unmatched_class_list.html + /// + /// + /// + /// + /// + public static async Task ExecuteUnmatchedClassListAsync(this WechatOpenAIClient client, Models.UnmatchedClassListRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v1", "unmatched", "class", "list"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + + /// + /// 异步调用 [POST] /v1/unmatched/class/detail 接口。 + /// REF: https://developers.weixin.qq.com/doc/aispeech/openapi/api/v2/bot/unmatched_class_detail.html + /// + /// + /// + /// + /// + public static async Task ExecuteUnmatchedClassDetailAsync(this WechatOpenAIClient client, Models.UnmatchedClassDetailRequest request, CancellationToken cancellationToken = default) + { + if (client is null) throw new ArgumentNullException(nameof(client)); + if (request is null) throw new ArgumentNullException(nameof(request)); + + IFlurlRequest flurlReq = client + .CreateRequest(request, HttpMethod.Post, "v1", "unmatched", "class", "detail"); + + return await client.SendRequestWithJsonAsync(flurlReq, data: request, cancellationToken: cancellationToken); + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiGetWelcomeMessageRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiGetWelcomeMessageRequest.cs new file mode 100644 index 00000000..ad3a9c41 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiGetWelcomeMessageRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/api/get_welcome_msg 接口的请求。 + /// + public class ApiGetWelcomeMessageRequest : WechatOpenAIRequest + { + /// + /// 获取或设置渠道 ID。 + /// + [Newtonsoft.Json.JsonProperty("channelId")] + [System.Text.Json.Serialization.JsonPropertyName("channelId")] + public string ChannelId { get; set; } = string.Empty; + + /// + /// 获取或设置标签 ID。 + /// + [Newtonsoft.Json.JsonProperty("lableId")] + [System.Text.Json.Serialization.JsonPropertyName("lableId")] + public string? LabelId { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiGetWelcomeMessageResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiGetWelcomeMessageResponse.cs new file mode 100644 index 00000000..2bde8158 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiGetWelcomeMessageResponse.cs @@ -0,0 +1,79 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/api/get_welcome_msg 接口的响应。 + /// + public class ApiGetWelcomeMessageResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class WelcomeMessage + { + /// + /// 获取或设置来源类型。 + /// + [Newtonsoft.Json.JsonProperty("source")] + [System.Text.Json.Serialization.JsonPropertyName("source")] + public int Source { get; set; } + + /// + /// 获取或设置欢迎语 ID。 + /// + [Newtonsoft.Json.JsonProperty("msgId")] + [System.Text.Json.Serialization.JsonPropertyName("msgId")] + public string MessageId { get; set; } = default!; + + /// + /// 获取或设置欢迎语类型。 + /// + [Newtonsoft.Json.JsonProperty("msgType")] + [System.Text.Json.Serialization.JsonPropertyName("msgType")] + public string MessageType { get; set; } = default!; + + /// + /// 获取或设置欢迎语内容。 + /// + [Newtonsoft.Json.JsonProperty("welcomeMsg")] + [System.Text.Json.Serialization.JsonPropertyName("welcomeMsg")] + public string MessageContent { get; set; } = default!; + + /// + /// 获取或设置标签。 + /// + [Newtonsoft.Json.JsonProperty("label")] + [System.Text.Json.Serialization.JsonPropertyName("label")] + public string? Label { get; set; } + + /// + /// 获取或设置发送间隔(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("newSendInterval")] + [System.Text.Json.Serialization.JsonPropertyName("newSendInterval")] + public int SendInterval { get; set; } + } + } + + /// + /// 获取或设置欢迎语列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public Types.WelcomeMessage[] WelcomeMessageList { get; set; } = default!; + + /// + /// 获取或设置欢迎语总数量。 + /// + [Newtonsoft.Json.JsonProperty("total")] + [System.Text.Json.Serialization.JsonPropertyName("total")] + public int TotalCount { get; set; } + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiSetWelcomeMessageRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiSetWelcomeMessageRequest.cs new file mode 100644 index 00000000..b6f663c8 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiSetWelcomeMessageRequest.cs @@ -0,0 +1,60 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/api/set_welcome_msg 接口的请求。 + /// + public class ApiSetWelcomeMessageRequest : WechatOpenAIRequest + { + /// + /// 获取或设置渠道 ID。 + /// + [Newtonsoft.Json.JsonProperty("channelId")] + [System.Text.Json.Serialization.JsonPropertyName("channelId")] + public string ChannelId { get; set; } = string.Empty; + + /// + /// 获取或设置来源类型。 + /// + [Newtonsoft.Json.JsonProperty("source")] + [System.Text.Json.Serialization.JsonPropertyName("source")] + public int Source { get; set; } + + /// + /// 获取或设置欢迎语 ID。 + /// + [Newtonsoft.Json.JsonProperty("msgId")] + [System.Text.Json.Serialization.JsonPropertyName("msgId")] + public string? MessageId { get; set; } + + /// + /// 获取或设置欢迎语类型。 + /// + [Newtonsoft.Json.JsonProperty("msgType")] + [System.Text.Json.Serialization.JsonPropertyName("msgType")] + public string MessageType { get; set; } = string.Empty; + + /// + /// 获取或设置欢迎语内容。 + /// + [Newtonsoft.Json.JsonProperty("welcomeMsg")] + [System.Text.Json.Serialization.JsonPropertyName("welcomeMsg")] + public string MessageContent { get; set; } = string.Empty; + + /// + /// 获取或设置标签 ID。 + /// + [Newtonsoft.Json.JsonProperty("lableId")] + [System.Text.Json.Serialization.JsonPropertyName("lableId")] + public string? LabelId { get; set; } + + /// + /// 获取或设置发送间隔(单位:秒)。 + /// + [Newtonsoft.Json.JsonProperty("newSendInterval")] + [System.Text.Json.Serialization.JsonPropertyName("newSendInterval")] + public int SendInterval { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiSetWelcomeMessageResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiSetWelcomeMessageResponse.cs new file mode 100644 index 00000000..0ca65080 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Api/ApiSetWelcomeMessageResponse.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/api/set_welcome_msg 接口的响应。 + /// + public class ApiSetWelcomeMessageResponse : WechatOpenAIResponse + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Async/AsyncFetchRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Async/AsyncFetchRequest.cs index 5a4f03f8..ba73de04 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Async/AsyncFetchRequest.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Async/AsyncFetchRequest.cs @@ -9,7 +9,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models public class AsyncFetchRequest : WechatOpenAIRequest { /// - /// 获取或设置任务 ID。 + /// 获取或设置异步任务 ID。 /// [Newtonsoft.Json.JsonIgnore] [System.Text.Json.Serialization.JsonIgnore] diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Async/AsyncFetchResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Async/AsyncFetchResponse.cs index e3fc6edc..e289dccb 100644 --- a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Async/AsyncFetchResponse.cs +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Async/AsyncFetchResponse.cs @@ -20,18 +20,18 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models public int State { get; set; } /// - /// 获取或设置任务进度。 + /// 获取或设置任务进度字符串。 /// [Newtonsoft.Json.JsonProperty("progress")] [System.Text.Json.Serialization.JsonPropertyName("progress")] - public string Progress { get; set; } = default!; + public string ProgressString { get; set; } = default!; /// - /// 获取或设置任务耗时。 + /// 获取或设置任务耗时字符串。 /// [Newtonsoft.Json.JsonProperty("cost")] [System.Text.Json.Serialization.JsonPropertyName("cost")] - public string Cost { get; set; } = default!; + public string CostString { get; set; } = default!; /// /// 获取或设置导出任务的下载链接。 diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotDeleteRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotDeleteRequest.cs new file mode 100644 index 00000000..fe0dbd57 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotDeleteRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/delete 接口的请求。 + /// + public class BotDeleteRequest : WechatOpenAIRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotDeleteResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotDeleteResponse.cs new file mode 100644 index 00000000..f7e4f92b --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotDeleteResponse.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/delete 接口的响应。 + /// + public class BotDeleteResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置异步任务 ID。 + /// + [Newtonsoft.Json.JsonProperty("task_id")] + [System.Text.Json.Serialization.JsonPropertyName("task_id")] + public string TaskId { get; set; } = default!; + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotEffectiveProgressRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotEffectiveProgressRequest.cs new file mode 100644 index 00000000..46e916ce --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotEffectiveProgressRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/effective_progress 接口的请求。 + /// + public class BotEffectiveProgressRequest : WechatOpenAIRequest + { + /// + /// 获取或设置环境。 + /// + [Newtonsoft.Json.JsonProperty("env")] + [System.Text.Json.Serialization.JsonPropertyName("env")] + public string? Environment { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotEffectiveProgressResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotEffectiveProgressResponse.cs new file mode 100644 index 00000000..52360e54 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotEffectiveProgressResponse.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/effective_progress 接口的响应。 + /// + public class BotEffectiveProgressResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置进度(范围:0~100)。 + /// + [Newtonsoft.Json.JsonProperty("progress")] + [System.Text.Json.Serialization.JsonPropertyName("progress")] + public int Progress { get; set; } + + /// + /// 获取或设置状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotExportRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotExportRequest.cs new file mode 100644 index 00000000..5e2f5fa0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotExportRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [GET] /v1/bot/export 接口的请求。 + /// + public class BotExportRequest : WechatOpenAIRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotExportResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotExportResponse.cs new file mode 100644 index 00000000..0f1873d3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotExportResponse.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [GET] /v1/bot/export 接口的响应。 + /// + public class BotExportResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置异步任务 ID。 + /// + [Newtonsoft.Json.JsonProperty("task_id")] + [System.Text.Json.Serialization.JsonPropertyName("task_id")] + public string TaskId { get; set; } = default!; + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetDetailRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetDetailRequest.cs new file mode 100644 index 00000000..1370097f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetDetailRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [GET] /v2/bot/get_detail 接口的请求。 + /// + public class BotGetDetailRequest : WechatOpenAIRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetDetailResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetDetailResponse.cs new file mode 100644 index 00000000..da702f30 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetDetailResponse.cs @@ -0,0 +1,101 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [GET] /v2/bot/get_detail 接口的响应。 + /// + public class BotGetDetailResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置机器人 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string BotId { get; set; } = default!; + + /// + /// 获取或设置机器人中文名。 + /// + [Newtonsoft.Json.JsonProperty("name_ch")] + [System.Text.Json.Serialization.JsonPropertyName("name_ch")] + public string ChineseName { get; set; } = default!; + + /// + /// 获取或设置机器人英文名。 + /// + [Newtonsoft.Json.JsonProperty("name_en")] + [System.Text.Json.Serialization.JsonPropertyName("name_en")] + public string? EnglishName { get; set; } + + /// + /// 获取或设置机器人昵称。 + /// + [Newtonsoft.Json.JsonProperty("nickname")] + [System.Text.Json.Serialization.JsonPropertyName("nickname")] + public string? Nickname { get; set; } + + /// + /// 获取或设置机器人类型。 + /// + [Newtonsoft.Json.JsonProperty("bot_type")] + [System.Text.Json.Serialization.JsonPropertyName("bot_type")] + public int BotType { get; set; } + + /// + /// 获取或设置行业 ID。 + /// + [Newtonsoft.Json.JsonProperty("industry")] + [System.Text.Json.Serialization.JsonPropertyName("industry")] + public int IndustryId { get; set; } + + /// + /// 获取或设置默认回答开关。 + /// + [Newtonsoft.Json.JsonProperty("default_answer_switch")] + [System.Text.Json.Serialization.JsonPropertyName("default_answer_switch")] + public bool DefaultAnswerSwitch { get; set; } + + /// + /// 获取或设置默认回答。 + /// + [Newtonsoft.Json.JsonProperty("default_answer")] + [System.Text.Json.Serialization.JsonPropertyName("default_answer")] + public string? DefaultAnswer { get; set; } + + /// + /// 获取或设置相似度阈值。 + /// + [Newtonsoft.Json.JsonProperty("similarity")] + [System.Text.Json.Serialization.JsonPropertyName("similarity")] + public double Similarity { get; set; } + + /// + /// 获取或设置相似度阈值下限。 + /// + [Newtonsoft.Json.JsonProperty("similarity_low")] + [System.Text.Json.Serialization.JsonPropertyName("similarity_low")] + public double SimilarityMinimum { get; set; } + + /// + /// 获取或设置相似问题推荐数量。 + /// + [Newtonsoft.Json.JsonProperty("similar_question_recommend_num")] + [System.Text.Json.Serialization.JsonPropertyName("similar_question_recommend_num")] + public int SimilarityQuestionRecommendCount { get; set; } + + /// + /// 获取或设置收集用户反馈开关。 + /// + [Newtonsoft.Json.JsonProperty("user_feedback")] + [System.Text.Json.Serialization.JsonPropertyName("user_feedback")] + public bool UserFeedbackSwitch { get; set; } + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetListRequest.cs new file mode 100644 index 00000000..9a3db573 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetListRequest.cs @@ -0,0 +1,41 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/get_list 接口的请求。 + /// + public class BotGetListRequest : WechatOpenAIRequest + { + /// + /// 获取或设置关键字。 + /// + [Newtonsoft.Json.JsonProperty("keyword")] + [System.Text.Json.Serialization.JsonPropertyName("keyword")] + public string? Keyword { get; set; } + + /// + /// 获取或设置机器人类型。 + /// + [Newtonsoft.Json.JsonProperty("bot_type")] + [System.Text.Json.Serialization.JsonPropertyName("bot_type")] + public int? BotType { get; set; } + + /// + /// 获取或设置分页页数。 + /// 默认值:0 + /// + [Newtonsoft.Json.JsonProperty("page")] + [System.Text.Json.Serialization.JsonPropertyName("page")] + public int Page { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonProperty("size")] + [System.Text.Json.Serialization.JsonPropertyName("size")] + public int Limit { get; set; } = 10; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetListResponse.cs new file mode 100644 index 00000000..ac049150 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotGetListResponse.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/get_list 接口的响应。 + /// + public class BotGetListResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class Bot + { + /// + /// 获取或设置机器人 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string BotId { get; set; } = default!; + + /// + /// 获取或设置机器人中文名。 + /// + [Newtonsoft.Json.JsonProperty("name_ch")] + [System.Text.Json.Serialization.JsonPropertyName("name_ch")] + public string ChineseName { get; set; } = default!; + + /// + /// 获取或设置机器人英文名。 + /// + [Newtonsoft.Json.JsonProperty("name_en")] + [System.Text.Json.Serialization.JsonPropertyName("name_en")] + public string? EnglishName { get; set; } + + /// + /// 获取或设置机器人类型。 + /// + [Newtonsoft.Json.JsonProperty("bot_type")] + [System.Text.Json.Serialization.JsonPropertyName("bot_type")] + public int BotType { get; set; } + + /// + /// 获取或设置操作权限类型。 + /// + [Newtonsoft.Json.JsonProperty("auth")] + [System.Text.Json.Serialization.JsonPropertyName("auth")] + public int AuthType { get; set; } + } + } + + /// + /// 获取或设置机器人列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public Types.Bot[] BotList { get; set; } = default!; + + /// + /// 获取或设置机器人总数量。 + /// + [Newtonsoft.Json.JsonProperty("count")] + [System.Text.Json.Serialization.JsonPropertyName("count")] + public int TotalCount { get; set; } + + /// + /// 获取或设置默认机器人数量。 + /// + [Newtonsoft.Json.JsonProperty("default_bot_count")] + [System.Text.Json.Serialization.JsonPropertyName("default_bot_count")] + public int DefaultBotCount { get; set; } + + /// + /// 获取或设置直播机器人数量。 + /// + [Newtonsoft.Json.JsonProperty("live_bot_count")] + [System.Text.Json.Serialization.JsonPropertyName("live_bot_count")] + public int LiveBotCount { get; set; } + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportJsonRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportJsonRequest.cs new file mode 100644 index 00000000..5d30b043 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportJsonRequest.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v1/bot/import/json 接口的请求。 + /// + public class BotImportJsonRequest : WechatOpenAIRequest + { + public static class Types + { + public class SkillIntent + { + /// + /// 获取或设置技能名称。 + /// + [Newtonsoft.Json.JsonProperty("skill")] + [System.Text.Json.Serialization.JsonPropertyName("skill")] + public string Skill { get; set; } = string.Empty; + + /// + /// 获取或设置原来意图名称。 + /// + [Newtonsoft.Json.JsonProperty("old_intent")] + [System.Text.Json.Serialization.JsonPropertyName("old_intent")] + public string? OldIntent { get; set; } + + /// + /// 获取或设置意图名称。 + /// + [Newtonsoft.Json.JsonProperty("intent")] + [System.Text.Json.Serialization.JsonPropertyName("intent")] + public string Intent { get; set; } = string.Empty; + + /// + /// 获取或设置相似度。 + /// + [Newtonsoft.Json.JsonProperty("threshold")] + [System.Text.Json.Serialization.JsonPropertyName("threshold")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString | System.Text.Json.Serialization.JsonNumberHandling.WriteAsString)] + public double Threshold { get; set; } + + /// + /// 获取或设置是否禁用。 + /// + [Newtonsoft.Json.JsonProperty("disable")] + [System.Text.Json.Serialization.JsonPropertyName("disable")] + public bool IsDisabled { get; set; } + + /// + /// 获取或设置问题列表。 + /// + [Newtonsoft.Json.JsonProperty("questions")] + [System.Text.Json.Serialization.JsonPropertyName("questions")] + public IList QuestionList { get; set; } = new List(); + + /// + /// 获取或设置回答列表。 + /// + [Newtonsoft.Json.JsonProperty("answers")] + [System.Text.Json.Serialization.JsonPropertyName("answers")] + public IList AnswerList { get; set; } = new List(); + } + } + + /// + /// 获取或设置技能意图列表。 + /// + [Newtonsoft.Json.JsonProperty("data")] + [System.Text.Json.Serialization.JsonPropertyName("data")] + public IList SkillIntentList { get; set; } = new List(); + + /// + /// 获取或设置导入模式。 + /// + [Newtonsoft.Json.JsonProperty("mode")] + [System.Text.Json.Serialization.JsonPropertyName("mode")] + public int Mode { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportJsonResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportJsonResponse.cs new file mode 100644 index 00000000..0e9b227d --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportJsonResponse.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v1/bot/import/json 接口的响应。 + /// + public class BotImportJsonResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置异步任务 ID。 + /// + [Newtonsoft.Json.JsonProperty("task_id")] + [System.Text.Json.Serialization.JsonPropertyName("task_id")] + public string TaskId { get; set; } = default!; + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportRequest.cs new file mode 100644 index 00000000..2d29a3a3 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportRequest.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v1/bot/import 接口的请求。 + /// + public class BotImportRequest : WechatOpenAIRequest + { + /// + /// 获取或设置上传的文件标识。 + /// + [Newtonsoft.Json.JsonProperty("file_key")] + [System.Text.Json.Serialization.JsonPropertyName("file_key")] + public string FileKey { get; set; } = string.Empty; + + /// + /// 获取或设置是否覆盖。 + /// + [Newtonsoft.Json.JsonProperty("cover")] + [System.Text.Json.Serialization.JsonPropertyName("cover")] + public bool IsCover { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportResponse.cs new file mode 100644 index 00000000..85724c4f --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotImportResponse.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v1/bot/import 接口的响应。 + /// + public class BotImportResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置异步任务 ID。 + /// + [Newtonsoft.Json.JsonProperty("task_id")] + [System.Text.Json.Serialization.JsonPropertyName("task_id")] + public string TaskId { get; set; } = default!; + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishGetRecordRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishGetRecordRequest.cs new file mode 100644 index 00000000..dff83d2e --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishGetRecordRequest.cs @@ -0,0 +1,27 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/publish/get_record 接口的请求。 + /// + public class BotPublishGetRecordRequest : WechatOpenAIRequest + { + /// + /// 获取或设置分页页数。 + /// 默认值:0 + /// + [Newtonsoft.Json.JsonProperty("page")] + [System.Text.Json.Serialization.JsonPropertyName("page")] + public int Page { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonProperty("size")] + [System.Text.Json.Serialization.JsonPropertyName("size")] + public int Limit { get; set; } = 10; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishGetRecordResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishGetRecordResponse.cs new file mode 100644 index 00000000..a7bca23c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishGetRecordResponse.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/publish/get_record 接口的响应。 + /// + public class BotPublishGetRecordResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class Record + { + /// + /// 获取或设置 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string Id { get; set; } = default!; + + /// + /// 获取或设置发布者 OpenId。 + /// + [Newtonsoft.Json.JsonProperty("open_id")] + [System.Text.Json.Serialization.JsonPropertyName("open_id")] + public string OpenId { get; set; } = default!; + + /// + /// 获取或设置发布状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public int Status { get; set; } + + /// + /// 获取或设置同步数据状态。 + /// + [Newtonsoft.Json.JsonProperty("sync_status")] + [System.Text.Json.Serialization.JsonPropertyName("sync_status")] + public int SyncStatus { get; set; } + + /// + /// 获取或设置描述。 + /// + [Newtonsoft.Json.JsonProperty("description")] + [System.Text.Json.Serialization.JsonPropertyName("description")] + public string Description { get; set; } = default!; + + /// + /// 获取或设置发布时间戳。 + /// + [Newtonsoft.Json.JsonProperty("created_time")] + [Newtonsoft.Json.JsonConverter(typeof(Newtonsoft.Json.Converters.RegularDateTimeOffsetConverter))] + [System.Text.Json.Serialization.JsonPropertyName("created_time")] + [System.Text.Json.Serialization.JsonConverter(typeof(System.Text.Json.Converters.RegularDateTimeOffsetConverter))] + public DateTimeOffset CreateTimestamp { get; set; } + } + } + + /// + /// 获取或设置发布记录列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public Types.Record[] RecordList { get; set; } = default!; + + /// + /// 获取或设置总数量。 + /// + [Newtonsoft.Json.JsonProperty("count")] + [System.Text.Json.Serialization.JsonPropertyName("count")] + public int TotalCount { get; set; } + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishRequest.cs new file mode 100644 index 00000000..46ad8909 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishRequest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/publish 接口的请求。 + /// + public class BotPublishRequest : WechatOpenAIRequest + { + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishResponse.cs new file mode 100644 index 00000000..b2773273 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotPublishResponse.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/publish 接口的响应。 + /// + public class BotPublishResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置异步任务 ID。 + /// + [Newtonsoft.Json.JsonProperty("task_id")] + [System.Text.Json.Serialization.JsonPropertyName("task_id")] + public string TaskId { get; set; } = default!; + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotSaveRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotSaveRequest.cs new file mode 100644 index 00000000..55f3550a --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotSaveRequest.cs @@ -0,0 +1,88 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/save 接口的请求。 + /// + public class BotSaveRequest : WechatOpenAIRequest + { + /// + /// 获取或设置机器人中文名。 + /// + [Newtonsoft.Json.JsonProperty("name_ch")] + [System.Text.Json.Serialization.JsonPropertyName("name_ch")] + public string ChineseName { get; set; } = string.Empty; + + /// + /// 获取或设置机器人英文名。 + /// + [Newtonsoft.Json.JsonProperty("name_en")] + [System.Text.Json.Serialization.JsonPropertyName("name_en")] + public string? EnglishName { get; set; } + + /// + /// 获取或设置机器人昵称。 + /// + [Newtonsoft.Json.JsonProperty("nickname")] + [System.Text.Json.Serialization.JsonPropertyName("nickname")] + public string? Nickname { get; set; } + + /// + /// 获取或设置机器人类型。 + /// + [Newtonsoft.Json.JsonProperty("bot_type")] + [System.Text.Json.Serialization.JsonPropertyName("bot_type")] + public int? BotType { get; set; } + + /// + /// 获取或设置行业 ID。 + /// + [Newtonsoft.Json.JsonProperty("industry")] + [System.Text.Json.Serialization.JsonPropertyName("industry")] + public int? IndustryId { get; set; } + + /// + /// 获取或设置默认回答开关。 + /// + [Newtonsoft.Json.JsonProperty("default_answer_switch")] + [System.Text.Json.Serialization.JsonPropertyName("default_answer_switch")] + public bool? DefaultAnswerSwitch { get; set; } + + /// + /// 获取或设置默认回答。 + /// + [Newtonsoft.Json.JsonProperty("default_answer")] + [System.Text.Json.Serialization.JsonPropertyName("default_answer")] + public string? DefaultAnswer { get; set; } + + /// + /// 获取或设置相似度阈值。 + /// + [Newtonsoft.Json.JsonProperty("similarity")] + [System.Text.Json.Serialization.JsonPropertyName("similarity")] + public double? Similarity { get; set; } + + /// + /// 获取或设置相似度阈值下限。 + /// + [Newtonsoft.Json.JsonProperty("similarity_low")] + [System.Text.Json.Serialization.JsonPropertyName("similarity_low")] + public double? SimilarityMinimum { get; set; } + + /// + /// 获取或设置相似问题推荐数量。 + /// + [Newtonsoft.Json.JsonProperty("similar_question_recommend_num")] + [System.Text.Json.Serialization.JsonPropertyName("similar_question_recommend_num")] + public int? SimilarityQuestionRecommendCount { get; set; } + + /// + /// 获取或设置收集用户反馈开关。 + /// + [Newtonsoft.Json.JsonProperty("user_feedback")] + [System.Text.Json.Serialization.JsonPropertyName("user_feedback")] + public bool? UserFeedbackSwitch { get; set; } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotSaveResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotSaveResponse.cs new file mode 100644 index 00000000..3454e1c9 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotSaveResponse.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v2/bot/save 接口的响应。 + /// + public class BotSaveResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + /// + /// 获取或设置机器人 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public string BotId { get; set; } = default!; + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotTestRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotTestRequest.cs new file mode 100644 index 00000000..f286be4c --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotTestRequest.cs @@ -0,0 +1,18 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [GET] /v1/bot/test 接口的请求。 + /// + public class BotTestRequest : WechatOpenAIRequest + { + /// + /// 获取或设置询问语句。 + /// + [Newtonsoft.Json.JsonIgnore] + [System.Text.Json.Serialization.JsonIgnore] + public string QueryString { get; set; } = string.Empty; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotTestResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotTestResponse.cs new file mode 100644 index 00000000..dc8425b4 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/Bot/BotTestResponse.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [GET] /v1/bot/test 接口的响应。 + /// + public class BotTestResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class BotState + { + /// + /// 获取或设置机器人配置错误信息。 + /// + [Newtonsoft.Json.JsonProperty("err_msg")] + [System.Text.Json.Serialization.JsonPropertyName("err_msg")] + public string? ErrorMessage { get; set; } + + /// + /// 获取或设置最后有效时间戳。 + /// + [Newtonsoft.Json.JsonProperty("last_effective_time")] + [System.Text.Json.Serialization.JsonPropertyName("last_effective_time")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public long LastEffectiveTimestamp { get; set; } + } + } + + /// + /// 获取或设置技能 ID。 + /// + [Newtonsoft.Json.JsonProperty("ans_node_id")] + [System.Text.Json.Serialization.JsonPropertyName("ans_node_id")] + public int AnswerNodeId { get; set; } + + /// + /// 获取或设置技能名称。 + /// + [Newtonsoft.Json.JsonProperty("ans_node_name")] + [System.Text.Json.Serialization.JsonPropertyName("ans_node_name")] + public string AnswerNodeName { get; set; } = default!; + + /// + /// 获取或设置回复类型。 + /// + [Newtonsoft.Json.JsonProperty("answer_type")] + [System.Text.Json.Serialization.JsonPropertyName("answer_type")] + public string AnswerType { get; set; } = default!; + + /// + /// 获取或设置回复内容。 + /// + [Newtonsoft.Json.JsonProperty("answer")] + [System.Text.Json.Serialization.JsonPropertyName("answer")] + public string Answer { get; set; } = default!; + + /// + /// 获取或设置意图标题。 + /// + [Newtonsoft.Json.JsonProperty("title")] + [System.Text.Json.Serialization.JsonPropertyName("title")] + public string Title { get; set; } = default!; + + /// + /// 获取或设置回复状态。 + /// + [Newtonsoft.Json.JsonProperty("status")] + [System.Text.Json.Serialization.JsonPropertyName("status")] + public string Status { get; set; } = default!; + + /// + /// 获取或设置机器人状态信息。 + /// + [Newtonsoft.Json.JsonProperty("bot_state")] + [System.Text.Json.Serialization.JsonPropertyName("bot_state")] + public Types.BotState? BotState { get; set; } + + /// + /// 获取或设置创建时间戳。 + /// + [Newtonsoft.Json.JsonProperty("create_time")] + [System.Text.Json.Serialization.JsonPropertyName("create_time")] + [System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)] + public long CreateTimestamp { get; set; } + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassDetailRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassDetailRequest.cs new file mode 100644 index 00000000..d328edf0 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassDetailRequest.cs @@ -0,0 +1,49 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v1/unmatched/class/detail 接口的请求。 + /// + public class UnmatchedClassDetailRequest : WechatOpenAIRequest + { + /// + /// 获取或设置查询日期(格式:yyyy-MM-dd)。 + /// + [Newtonsoft.Json.JsonProperty("date")] + [System.Text.Json.Serialization.JsonPropertyName("date")] + public string DateString { get; set; } = string.Empty; + + /// + /// 获取或设置话术 ID。 + /// + [Newtonsoft.Json.JsonProperty("class_id")] + [System.Text.Json.Serialization.JsonPropertyName("class_id")] + public int ClassId { get; set; } + + /// + /// 获取或设置排序方式。 + /// 默认值:desc + /// + [Newtonsoft.Json.JsonProperty("sort")] + [System.Text.Json.Serialization.JsonPropertyName("sort")] + public string SortType { get; set; } = "desc"; + + /// + /// 获取或设置分页页数。 + /// 默认值:1 + /// + [Newtonsoft.Json.JsonProperty("page_no")] + [System.Text.Json.Serialization.JsonPropertyName("page_no")] + public int Page { get; set; } = 1; + + /// + /// 获取或设置分页每页数量。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } = 10; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassDetailResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassDetailResponse.cs new file mode 100644 index 00000000..7f971ee6 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassDetailResponse.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v1/unmatched/class/detail 接口的响应。 + /// + public class UnmatchedClassDetailResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class Class + { + /// + /// 获取或设置询问话术。 + /// + [Newtonsoft.Json.JsonProperty("query")] + [System.Text.Json.Serialization.JsonPropertyName("query")] + public string Query { get; set; } = default!; + + /// + /// 获取或设置回答话术。 + /// + [Newtonsoft.Json.JsonProperty("answer")] + [System.Text.Json.Serialization.JsonPropertyName("answer")] + public string Answer { get; set; } = default!; + + /// + /// 获取或设置未命中数量。 + /// + [Newtonsoft.Json.JsonProperty("count")] + [System.Text.Json.Serialization.JsonPropertyName("count")] + public int Count { get; set; } + } + } + + /// + /// 获取或设置话术列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public Types.Class[] ClassList { get; set; } = default!; + + /// + /// 获取或设置总数量。 + /// + [Newtonsoft.Json.JsonProperty("total")] + [System.Text.Json.Serialization.JsonPropertyName("total")] + public int TotalCount { get; set; } + + /// + /// 获取或设置分页页数。 + /// + [Newtonsoft.Json.JsonProperty("page_no")] + [System.Text.Json.Serialization.JsonPropertyName("page_no")] + public int Page { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } + } + } + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassListRequest.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassListRequest.cs new file mode 100644 index 00000000..e8376176 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassListRequest.cs @@ -0,0 +1,42 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v1/unmatched/class/list 接口的请求。 + /// + public class UnmatchedClassListRequest : WechatOpenAIRequest + { + /// + /// 获取或设置查询日期(格式:yyyy-MM-dd)。 + /// + [Newtonsoft.Json.JsonProperty("date")] + [System.Text.Json.Serialization.JsonPropertyName("date")] + public string DateString { get; set; } = string.Empty; + + /// + /// 获取或设置排序方式。 + /// 默认值:desc + /// + [Newtonsoft.Json.JsonProperty("sort")] + [System.Text.Json.Serialization.JsonPropertyName("sort")] + public string SortType { get; set; } = "desc"; + + /// + /// 获取或设置分页页数。 + /// 默认值:1 + /// + [Newtonsoft.Json.JsonProperty("page_no")] + [System.Text.Json.Serialization.JsonPropertyName("page_no")] + public int Page { get; set; } = 1; + + /// + /// 获取或设置分页每页数量。 + /// 默认值:10 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } = 10; + } +} diff --git a/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassListResponse.cs b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassListResponse.cs new file mode 100644 index 00000000..36864890 --- /dev/null +++ b/src/SKIT.FlurlHttpClient.Wechat.OpenAI/Models/UnmatchedClass/UnmatchedClassListResponse.cs @@ -0,0 +1,72 @@ +using System; +using System.Collections.Generic; + +namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models +{ + /// + /// 表示 [POST] /v1/unmatched/class/list 接口的响应。 + /// + public class UnmatchedClassListResponse : WechatOpenAIResponse + { + public static class Types + { + public class Data + { + public static class Types + { + public class Class + { + /// + /// 获取或设置话术 ID。 + /// + [Newtonsoft.Json.JsonProperty("id")] + [System.Text.Json.Serialization.JsonPropertyName("id")] + public int ClassId { get; set; } + + /// + /// 获取或设置话术名称。 + /// + [Newtonsoft.Json.JsonProperty("name")] + [System.Text.Json.Serialization.JsonPropertyName("name")] + public string Name { get; set; } = default!; + + /// + /// 获取或设置未命中数量。 + /// + [Newtonsoft.Json.JsonProperty("count")] + [System.Text.Json.Serialization.JsonPropertyName("count")] + public int Count { get; set; } + } + } + + /// + /// 获取或设置话术列表。 + /// + [Newtonsoft.Json.JsonProperty("list")] + [System.Text.Json.Serialization.JsonPropertyName("list")] + public Types.Class[] ClassList { get; set; } = default!; + + /// + /// 获取或设置总数量。 + /// + [Newtonsoft.Json.JsonProperty("total")] + [System.Text.Json.Serialization.JsonPropertyName("total")] + public int TotalCount { get; set; } + + /// + /// 获取或设置分页页数。 + /// + [Newtonsoft.Json.JsonProperty("page_no")] + [System.Text.Json.Serialization.JsonPropertyName("page_no")] + public int Page { get; set; } + + /// + /// 获取或设置分页每页数量。 + /// + [Newtonsoft.Json.JsonProperty("page_size")] + [System.Text.Json.Serialization.JsonPropertyName("page_size")] + public int Limit { get; set; } + } + } + } +} diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiGetWelcomeMessageRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiGetWelcomeMessageRequest.json new file mode 100644 index 00000000..4ce17a54 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiGetWelcomeMessageRequest.json @@ -0,0 +1,3 @@ +{ + "channelId": "sXRdXepMU58WyAV3xgT2F14PzXi4ya" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiGetWelcomeMessageResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiGetWelcomeMessageResponse.json new file mode 100644 index 00000000..e181cdc1 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiGetWelcomeMessageResponse.json @@ -0,0 +1,18 @@ +{ + "code": 0, + "data": { + "list": [ + { + "source": 1, + "msgType": "text", + "welcomeMsg": "你好", + "msgId": "5248", + "label": "全部", + "newSendInterval": 0 + } + ], + "total": 1 + }, + "request_id": "18024ec0-837e-4873-825a-922247d4e57f" + +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiSetWelcomeMessageRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiSetWelcomeMessageRequest.json new file mode 100644 index 00000000..aad44b8c --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiSetWelcomeMessageRequest.json @@ -0,0 +1,9 @@ +{ + "channelId": "sXRdXepMU58WyAV3xgT2F14PzXi4ya", + "msgType": "text", + "newSendInterval": 0, + "source": 1, + "welcomeMsg": "你好", + "lableId": "", + "msgId": "5500" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiSetWelcomeMessageResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiSetWelcomeMessageResponse.json new file mode 100644 index 00000000..c50fc1e8 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Api/ApiSetWelcomeMessageResponse.json @@ -0,0 +1,4 @@ +{ + "code": 0, + "request_id": "f9da2eba-98f9-4b51-a68c-5bc7c537e539" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotDeleteRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotDeleteRequest.json new file mode 100644 index 00000000..22fdca1b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotDeleteRequest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotDeleteResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotDeleteResponse.json new file mode 100644 index 00000000..3059ae80 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotDeleteResponse.json @@ -0,0 +1,8 @@ +{ + "code": 0, + "data": { + "task_id": "172ead02b7a14bfd8aac43939c0e2cb3" + }, + "msg": "success", + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotEffectiveProgressRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotEffectiveProgressRequest.json new file mode 100644 index 00000000..f39c8243 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotEffectiveProgressRequest.json @@ -0,0 +1,3 @@ +{ + "env": "debug" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotEffectiveProgressResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotEffectiveProgressResponse.json new file mode 100644 index 00000000..3a9aaa2f --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotEffectiveProgressResponse.json @@ -0,0 +1,9 @@ +{ + "code": 0, + "msg": "success", + "data": { + "progress": 100, + "status": 1 + }, + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotExportRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotExportRequest.json new file mode 100644 index 00000000..22fdca1b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotExportRequest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotExportResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotExportResponse.json new file mode 100644 index 00000000..d8b0d65a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotExportResponse.json @@ -0,0 +1,8 @@ +{ + "code": 0, + "msg": "请求成功", + "data": { + "task_id": "337cd9d9-210c-4a59-972e-1c8df8c18adb" + }, + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetDetailRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetDetailRequest.json new file mode 100644 index 00000000..22fdca1b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetDetailRequest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetDetailResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetDetailResponse.json new file mode 100644 index 00000000..80f85ec8 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetDetailResponse.json @@ -0,0 +1,19 @@ +{ + "code": 0, + "data": { + "default_answer": null, + "default_answer_switch": true, + "id": "3yrw9n5uknsox1pwzyz9ohb2eu4ta4wo", + "name_ch": "测试bot000121", + "name_en": "testBot000121", + "nickname": null, + "similar_question_recommend_num": 5, + "similarity": 0.9, + "similarity_low": 0.7, + "user_feedback": false, + "industry": 2, + "bot_type": 0 + }, + "msg": "请求成功", + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetListRequest.json new file mode 100644 index 00000000..686f9641 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetListRequest.json @@ -0,0 +1,6 @@ +{ + "keyword": "测试", + "page": 1, + "size": 10, + "bot_type": -1 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetListResponse.json new file mode 100644 index 00000000..1b50091d --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotGetListResponse.json @@ -0,0 +1,40 @@ +{ + "code": 0, + "data": { + "count": 4, + "default_bot_count": 3, + "live_bot_count": 1, + "list": [ + { + "id": "3yrw9n5uknsox1pwzyz9ohb2eu4ta4wo", + "name_ch": "测试bot000121", + "name_en": "testBot000121", + "auth": 200, + "bot_type": 0 + }, + { + "id": "sbcvmbvxrdkjg0axix5c9driwfwqbkum", + "name_ch": "测试bot0001211", + "name_en": "testBot0001211", + "auth": 200, + "bot_type": 1 + }, + { + "id": "td6kko408oo5afll4b7dh3l3ybmtsrgi", + "name_ch": "测试bot000111", + "name_en": "testBot00211", + "auth": 200, + "bot_type": 0 + }, + { + "id": "81wfgwcjmenfs3kkapwa97hwqfnrbu1z", + "name_ch": "测试bot00013", + "name_en": "testBot00013", + "auth": 200, + "bot_type": 0 + } + ] + }, + "msg": "success", + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportJsonRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportJsonRequest.json new file mode 100644 index 00000000..257a5d09 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportJsonRequest.json @@ -0,0 +1,19 @@ +{ + "mode": 0, + "data": [ + { + "skill": "吃啥", + "intent": "中午吃什么", + "threshold": "0.9", + "disable": false, + "questions": [ + "中午吃什么?", + "中午吃啥?" + ], + "answers": [ + "面条", + "包子" + ] + } + ] +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportJsonResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportJsonResponse.json new file mode 100644 index 00000000..520ef734 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportJsonResponse.json @@ -0,0 +1,8 @@ +{ + "code": 0, + "data": { + "task_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142" + }, + "msg": "", + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportRequest.json new file mode 100644 index 00000000..f36b3759 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportRequest.json @@ -0,0 +1,4 @@ +{ + "file_key": "fe48940d7310e79d6bf0a4aced56d522", + "cover": false +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportResponse.json new file mode 100644 index 00000000..d8b0d65a --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotImportResponse.json @@ -0,0 +1,8 @@ +{ + "code": 0, + "msg": "请求成功", + "data": { + "task_id": "337cd9d9-210c-4a59-972e-1c8df8c18adb" + }, + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishGetRecordRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishGetRecordRequest.json new file mode 100644 index 00000000..61c8c337 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishGetRecordRequest.json @@ -0,0 +1,4 @@ +{ + "page": 0, + "size": 8 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishGetRecordResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishGetRecordResponse.json new file mode 100644 index 00000000..c62e3564 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishGetRecordResponse.json @@ -0,0 +1,34 @@ +{ + "code": 0, + "data": { + "count": 3, + "list": [ + { + "created_time": "2020-08-21 18:00:51", + "description": "", + "id": "65", + "open_id": "123456", + "status": 8, + "sync_status": 0 + }, + { + "created_time": "2020-08-21 19:00:52", + "description": "", + "id": "79", + "open_id": "123456", + "status": 8, + "sync_status": 1 + }, + { + "created_time": "2020-08-21 20:00:53", + "description": "", + "id": "555", + "open_id": "123456", + "status": 9, + "sync_status": 2 + } + ] + }, + "msg": "success", + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishRequest.json new file mode 100644 index 00000000..22fdca1b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishRequest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishResponse.json new file mode 100644 index 00000000..918b8871 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotPublishResponse.json @@ -0,0 +1,8 @@ +{ + "code": 0, + "data": { + "task_id": "b86a904600eb4a2e940beb8af8d5c0d3" + }, + "msg": "success", + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotSaveRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotSaveRequest.json new file mode 100644 index 00000000..3fdeffc4 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotSaveRequest.json @@ -0,0 +1,13 @@ +{ + "name_ch": "中文234", + "name_en": "en134", + "nickname": "测试", + "default_answer": "你好", + "default_answer_switch": true, + "similarity": 0.9, + "similarity_low": 0.7, + "similar_question_recommend_num": 5, + "user_feedback": true, + "industry": 2, + "bot_type": 0 +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotSaveResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotSaveResponse.json new file mode 100644 index 00000000..96ecf792 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotSaveResponse.json @@ -0,0 +1,8 @@ +{ + "code": 0, + "data": { + "id": "dzcmrij0zyvexs4llblxepwclfvnq3fv" + }, + "msg": "success", + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotTestRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotTestRequest.json new file mode 100644 index 00000000..22fdca1b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotTestRequest.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotTestResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotTestResponse.json new file mode 100644 index 00000000..bd6da986 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/Bot/BotTestResponse.json @@ -0,0 +1,18 @@ +{ + "code": 0, + "data": { + "ans_node_id": 9620273, + "ans_node_name": "吃啥", + "answer": "包子", + "answer_type": "text", + "bot_state": { + "err_msg": "", + "last_effective_time": "20210827113707" + }, + "create_time": "1630035702", + "status": "GENERAL_FAQ", + "title": "中午吃什么" + }, + "msg": "", + "request_id": "32482" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassDetailRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassDetailRequest.json new file mode 100644 index 00000000..febddf2b --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassDetailRequest.json @@ -0,0 +1,7 @@ +{ + "sort": "asc", + "page_no": 1, + "page_size": 10, + "class_id": 12, + "date": "2021-08-23" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassDetailResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassDetailResponse.json new file mode 100644 index 00000000..ce262db8 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassDetailResponse.json @@ -0,0 +1,17 @@ +{ + "code": 0, + "msg": "请求成功", + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142", + "data": { + "list": [ + { + "query": "你好啊啊啊", + "answer": "哈哈哈哈", + "count": 1 + } + ], + "page_no": 1, + "page_size": 10, + "total": 1 + } +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassListRequest.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassListRequest.json new file mode 100644 index 00000000..01e4279c --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassListRequest.json @@ -0,0 +1,6 @@ +{ + "sort": "asc", + "page_no": 1, + "page_size": 10, + "date": "2021-08-23" +} \ No newline at end of file diff --git a/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassListResponse.json b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassListResponse.json new file mode 100644 index 00000000..b0ef2f80 --- /dev/null +++ b/test/SKIT.FlurlHttpClient.Wechat.OpenAI.UnitTests/ModelSamples/UnmatchedClass/UnmatchedClassListResponse.json @@ -0,0 +1,17 @@ +{ + "code": 0, + "msg": "请求成功", + "request_id": "255i0ug8-l9q4-3801-44ft-w7csjn9e5142", + "data": { + "list": [ + { + "id": 1, + "count": 9, + "name": "哈哈哈哈" + } + ], + "page_no": 1, + "page_size": 10, + "total": 100 + } +} \ No newline at end of file