feat(openai): 随官方更新智能对话接口相关接口模型

This commit is contained in:
dydhyh
2022-11-18 18:59:26 +08:00
committed by GitHub
parent 57f9592d69
commit 71d494ae14
5 changed files with 411 additions and 124 deletions

View File

@@ -10,7 +10,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
{ {
/// <summary> /// <summary>
/// <para>异步调用 [POST] /sign/{TOKEN} 接口。</para> /// <para>异步调用 [POST] /sign/{TOKEN} 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/platform/INTERFACEDOCUMENT.html </para> /// <para>REF: https://developers.weixin.qq.com/doc/aispeech/confapi/INTERFACEDOCUMENT.html#_1-%E8%8E%B7%E5%8F%96signature%E6%8E%A5%E5%8F%A3 </para>
/// </summary> /// </summary>
/// <param name="client"></param> /// <param name="client"></param>
/// <param name="request"></param> /// <param name="request"></param>
@@ -29,7 +29,7 @@ namespace SKIT.FlurlHttpClient.Wechat.OpenAI
/// <summary> /// <summary>
/// <para>异步调用 [POST] /aibot/{TOKEN} 接口。</para> /// <para>异步调用 [POST] /aibot/{TOKEN} 接口。</para>
/// <para>REF: https://developers.weixin.qq.com/doc/aispeech/platform/INTERFACEDOCUMENT.html </para> /// <para>REF: https://developers.weixin.qq.com/doc/aispeech/confapi/INTERFACEDOCUMENT.html#_2-%E6%99%BA%E8%83%BD%E5%AF%B9%E8%AF%9D%E6%8E%A5%E5%8F%A3 </para>
/// </summary> /// </summary>
/// <param name="client"></param> /// <param name="client"></param>
/// <param name="request"></param> /// <param name="request"></param>

View File

@@ -1,29 +1,45 @@
using System.Xml.Serialization; using System.Collections.Generic;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /aibot/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /aibot/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] public class AIBotRequest : WechatOpenAIPlatformRequest
public class AIBotRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置请求签名。 /// 获取或设置请求签名。
/// </summary> /// </summary>
[XmlElement("signature")] [Newtonsoft.Json.JsonProperty("signature")]
[System.Text.Json.Serialization.JsonPropertyName("signature")]
public string Signature { get; set; } = string.Empty; public string Signature { get; set; } = string.Empty;
/// <summary> /// <summary>
/// 获取或设置询问语句。 /// 获取或设置询问语句。
/// </summary> /// </summary>
[XmlElement("query")] [Newtonsoft.Json.JsonProperty("query")]
[System.Text.Json.Serialization.JsonPropertyName("query")]
public string QueryString { get; set; } = string.Empty; public string QueryString { get; set; } = string.Empty;
/// <summary> /// <summary>
/// 获取或设置环境。 /// 获取或设置环境。
/// </summary> /// </summary>
[XmlElement("env", IsNullable = true)] [Newtonsoft.Json.JsonProperty("env")]
[System.Text.Json.Serialization.JsonPropertyName("env")]
public string? Environment { get; set; } public string? Environment { get; set; }
/// <summary>
/// 获取或设置第一优先级的限定技能命中范围列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("first_priority_skills")]
[System.Text.Json.Serialization.JsonPropertyName("first_priority_skills")]
public IList<string>? FirstPrioritySkillList { get; set; }
/// <summary>
/// 获取或设置第二优先级的限定技能命中范围列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("second_priority_skills")]
[System.Text.Json.Serialization.JsonPropertyName("second_priority_skills")]
public IList<string>? SecondPrioritySkillList { get; set; }
} }
} }

View File

@@ -1,13 +1,11 @@
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform using System;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /aibot/{TOKEN} 接口的响应。</para> /// <para>表示 [POST] /aibot/{TOKEN} 接口的响应。</para>
/// </summary> /// </summary>
public class AIBotResponse : WechatOpenAIPlatformResponse<AIBotResponse.Types.Data> public class AIBotResponse : WechatOpenAIPlatformResponse
{
public static class Types
{
public class Data
{ {
public static class Types public static class Types
{ {
@@ -42,6 +40,7 @@
/// </summary> /// </summary>
[Newtonsoft.Json.JsonProperty("ans_node_id")] [Newtonsoft.Json.JsonProperty("ans_node_id")]
[System.Text.Json.Serialization.JsonPropertyName("ans_node_id")] [System.Text.Json.Serialization.JsonPropertyName("ans_node_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public int AnswerNodeId { get; set; } public int AnswerNodeId { get; set; }
/// <summary> /// <summary>
@@ -56,7 +55,7 @@
/// </summary> /// </summary>
[Newtonsoft.Json.JsonProperty("confidence")] [Newtonsoft.Json.JsonProperty("confidence")]
[System.Text.Json.Serialization.JsonPropertyName("confidence")] [System.Text.Json.Serialization.JsonPropertyName("confidence")]
public int Confidence { get; set; } = default!; public float Confidence { get; set; } = default!;
/// <summary> /// <summary>
/// 获取或设置消息类型。 /// 获取或设置消息类型。
@@ -79,15 +78,162 @@
[System.Text.Json.Serialization.JsonPropertyName("status")] [System.Text.Json.Serialization.JsonPropertyName("status")]
public string Status { get; set; } = default!; public string Status { get; set; } = default!;
/// <summary>
/// 获取或设置是否是列表选择。
/// </summary>
[Newtonsoft.Json.JsonProperty("list_options")]
[System.Text.Json.Serialization.JsonPropertyName("list_options")]
public bool IsListOptions { get; set; }
/// <summary>
/// 获取或设置是否仅选择。
/// </summary>
[Newtonsoft.Json.JsonProperty("take_options_only")]
[System.Text.Json.Serialization.JsonPropertyName("take_options_only")]
public bool IsTakeOptionsOnly { get; set; }
/// <summary>
/// 获取或设置当前事件。
/// </summary>
[Newtonsoft.Json.JsonProperty("event")]
[System.Text.Json.Serialization.JsonPropertyName("event")]
public string? Event { get; set; }
/// <summary>
/// 获取或设置调试信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("debug_info")]
[System.Text.Json.Serialization.JsonPropertyName("debug_info")]
public string? DebugInfo { get; set; }
/// <summary> /// <summary>
/// 获取或设置窗口标题。 /// 获取或设置窗口标题。
/// </summary> /// </summary>
[Newtonsoft.Json.JsonProperty("resp_title")] [Newtonsoft.Json.JsonProperty("resp_title")]
[System.Text.Json.Serialization.JsonPropertyName("resp_title")] [System.Text.Json.Serialization.JsonPropertyName("resp_title")]
public string? ResponseTitle { get; set; } public string? ResponseTitle { get; set; }
/// <summary>
/// 获取或设置场景状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("scene_status")]
[System.Text.Json.Serialization.JsonPropertyName("scene_status")]
public string? SceneStatus { get; set; }
/// <summary>
/// 获取或设置会话 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("session_id")]
[System.Text.Json.Serialization.JsonPropertyName("session_id")]
public string? SessionId { get; set; }
}
public class Option
{
/// <summary>
/// 获取或设置推荐分类。
/// </summary>
[Newtonsoft.Json.JsonProperty("ans_node_name")]
[System.Text.Json.Serialization.JsonPropertyName("ans_node_name")]
public string AnswerNodeName { get; set; } = default!;
/// <summary>
/// 获取或设置推荐标准问题。
/// </summary>
[Newtonsoft.Json.JsonProperty("title")]
[System.Text.Json.Serialization.JsonPropertyName("title")]
public string Title { get; set; } = default!;
/// <summary>
/// 获取或设置推荐回答。
/// </summary>
[Newtonsoft.Json.JsonProperty("answer")]
[System.Text.Json.Serialization.JsonPropertyName("answer")]
public string Answer { get; set; } = default!;
/// <summary>
/// 获取或设置推荐信息指数。
/// </summary>
[Newtonsoft.Json.JsonProperty("confidence")]
[System.Text.Json.Serialization.JsonPropertyName("confidence")]
public double Confidence { get; set; }
}
public class Slot
{
/// <summary>
/// 获取或设置槽位确认状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("confirm_status")]
[System.Text.Json.Serialization.JsonPropertyName("confirm_status")]
public string ConfirmStatus { get; set; } = default!;
/// <summary>
/// 获取或设置开始位置。
/// </summary>
[Newtonsoft.Json.JsonProperty("start")]
[System.Text.Json.Serialization.JsonPropertyName("start")]
public int Start { get; set; }
/// <summary>
/// 获取或设置结束位置。
/// </summary>
[Newtonsoft.Json.JsonProperty("end")]
[System.Text.Json.Serialization.JsonPropertyName("end")]
public int End { get; set; }
/// <summary>
/// 获取或设置槽位名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("slot_name")]
[System.Text.Json.Serialization.JsonPropertyName("slot_name")]
public string SlotName { get; set; } = default!;
/// <summary>
/// 获取或设置槽位值。
/// </summary>
[Newtonsoft.Json.JsonProperty("slot_value")]
[System.Text.Json.Serialization.JsonPropertyName("slot_value")]
public string SlotValue { get; set; } = default!;
/// <summary>
/// 获取或设置词典类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("entity_type")]
[System.Text.Json.Serialization.JsonPropertyName("entity_type")]
public string? EntityType { get; set; }
/// <summary>
/// 获取或设置归一化的值。
/// </summary>
[Newtonsoft.Json.JsonProperty("norm")]
[System.Text.Json.Serialization.JsonPropertyName("norm")]
public string? Norm { get; set; }
/// <summary>
/// 获取或设置归一化的值详细信息。
/// </summary>
[Newtonsoft.Json.JsonProperty("norm_detail")]
[System.Text.Json.Serialization.JsonPropertyName("norm_detail")]
public string? NormDetail { get; set; }
/// <summary>
/// 获取或设置回复的意图名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("title")]
[System.Text.Json.Serialization.JsonPropertyName("title")]
public string? Title { get; set; }
} }
} }
/// <summary>
/// 获取或设置技能 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("ans_node_id")]
[System.Text.Json.Serialization.JsonPropertyName("ans_node_id")]
[System.Text.Json.Serialization.JsonNumberHandling(System.Text.Json.Serialization.JsonNumberHandling.AllowReadingFromString)]
public int AnswerNodeId { get; set; }
/// <summary> /// <summary>
/// 获取或设置技能名称。 /// 获取或设置技能名称。
/// </summary> /// </summary>
@@ -96,61 +242,186 @@
public string AnswerNodeName { get; set; } = default!; public string AnswerNodeName { get; set; } = default!;
/// <summary> /// <summary>
/// 获取或设置回复类型 /// 获取或设置标准问题或意图名称
/// </summary>
[Newtonsoft.Json.JsonProperty("answer_type")]
[System.Text.Json.Serialization.JsonPropertyName("answer_type")]
public string AnswerType { get; set; } = default!;
/// <summary>
/// 获取或设置回复内容。
/// </summary>
[Newtonsoft.Json.JsonProperty("answer")]
[System.Text.Json.Serialization.JsonPropertyName("answer")]
public string Answer { get; set; } = default!;
/// <summary>
/// 获取或设置意图标题。
/// </summary> /// </summary>
[Newtonsoft.Json.JsonProperty("title")] [Newtonsoft.Json.JsonProperty("title")]
[System.Text.Json.Serialization.JsonPropertyName("title")] [System.Text.Json.Serialization.JsonPropertyName("title")]
public string Title { get; set; } = default!; public string Title { get; set; } = default!;
/// <summary> /// <summary>
/// 获取或设置回复状态 /// 获取或设置命中的回答
/// </summary> /// </summary>
[Newtonsoft.Json.JsonProperty("status")] [Newtonsoft.Json.JsonProperty("answer")]
[System.Text.Json.Serialization.JsonPropertyName("status")] [System.Text.Json.Serialization.JsonPropertyName("answer")]
public string Status { get; set; } = default!; public string Answer { get; set; } = default!;
/// <summary> /// <summary>
/// 获取或设置发起用户 /// 获取或设置回答显示状态
/// </summary>
[Newtonsoft.Json.JsonProperty("answer_open")]
[System.Text.Json.Serialization.JsonPropertyName("answer_open")]
public int? AnswerOpenStatus { get; set; }
/// <summary>
/// 获取或设置回答的类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("answer_type")]
[System.Text.Json.Serialization.JsonPropertyName("answer_type")]
public string AnswerType { get; set; } = default!;
/// <summary>
/// 获取或设置回答信心指数。
/// </summary>
[Newtonsoft.Json.JsonProperty("confidence")]
[System.Text.Json.Serialization.JsonPropertyName("confidence")]
public double Confidence { get; set; }
/// <summary>
/// 获取或设置发起查询的用户 ID。
/// </summary> /// </summary>
[Newtonsoft.Json.JsonProperty("from_user_name")] [Newtonsoft.Json.JsonProperty("from_user_name")]
[System.Text.Json.Serialization.JsonPropertyName("from_user_name")] [System.Text.Json.Serialization.JsonPropertyName("from_user_name")]
public string FromUserName { get; set; } = default!; public string FromUserName { get; set; } = default!;
/// <summary> /// <summary>
/// 获取或设置接机器人。 /// 获取或设置接受查询的机器人。
/// </summary> /// </summary>
[Newtonsoft.Json.JsonProperty("to_user_name")] [Newtonsoft.Json.JsonProperty("to_user_name")]
[System.Text.Json.Serialization.JsonPropertyName("to_user_name")] [System.Text.Json.Serialization.JsonPropertyName("to_user_name")]
public string ToUserName { get; set; } = default!; public string ToUserName { get; set; } = default!;
/// <summary> /// <summary>
/// 获取或设置机器人状态信息。 /// 获取或设置用户发送的消息。
/// </summary> /// </summary>
[Newtonsoft.Json.JsonProperty("bot_state")] [Newtonsoft.Json.JsonProperty("query")]
[System.Text.Json.Serialization.JsonPropertyName("bot_state")] [System.Text.Json.Serialization.JsonPropertyName("query")]
public Types.BotState? BotState { get; set; } public string QueryString { get; set; } = default!;
/// <summary> /// <summary>
/// 获取或设置详细回答列表 /// 获取或设置消息 ID
/// </summary> /// </summary>
[Newtonsoft.Json.JsonProperty("msg_id")]
[System.Text.Json.Serialization.JsonPropertyName("msg_id")]
public string MessageId { get; set; } = default!;
/// <summary>
/// 获取或设置消息类型。
/// </summary>
[Newtonsoft.Json.JsonProperty("msgtype")]
[System.Text.Json.Serialization.JsonPropertyName("msgtype")]
public string MessageType { get; set; } = default!;
/// <summary>
/// 获取或设置回答详细信息。
/// </summary>
[Obsolete("相关接口或字段于 2022-04-15 下线。")]
[Newtonsoft.Json.JsonProperty("msg")] [Newtonsoft.Json.JsonProperty("msg")]
[System.Text.Json.Serialization.JsonPropertyName("msg")] [System.Text.Json.Serialization.JsonPropertyName("msg")]
public Types.Message[] MessageList { get; set; } = default!; public Types.Message[]? MessageList { get; set; }
}
} /// <summary>
/// 获取或设置机器人回复的状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("status")]
[System.Text.Json.Serialization.JsonPropertyName("status")]
public string Status { get; set; } = default!;
/// <summary>
/// 获取或设置当前事件。
/// </summary>
[Newtonsoft.Json.JsonProperty("event")]
[System.Text.Json.Serialization.JsonPropertyName("event")]
public string? Event { get; set; }
/// <summary>
/// 获取或设置会话 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("session_id")]
[System.Text.Json.Serialization.JsonPropertyName("session_id")]
public string? SessionId { get; set; }
/// <summary>
/// 获取或设置请求标识符。
/// </summary>
[Newtonsoft.Json.JsonProperty("rid")]
[System.Text.Json.Serialization.JsonPropertyName("rid")]
public string? RequestId { get; set; }
/// <summary>
/// 获取或设置当前对话会话状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("dialog_session_status")]
[System.Text.Json.Serialization.JsonPropertyName("dialog_session_status")]
public string? DialogSessionStatus { get; set; }
/// <summary>
/// 获取或设置当前对话状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("dialog_status")]
[System.Text.Json.Serialization.JsonPropertyName("dialog_status")]
public string? DialogStatus { get; set; }
/// <summary>
/// 获取或设置意图确认状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("intent_confirm_status")]
[System.Text.Json.Serialization.JsonPropertyName("intent_confirm_status")]
public string? IntentConfirmStatus { get; set; }
/// <summary>
/// 获取或设置场景状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("scene_status")]
[System.Text.Json.Serialization.JsonPropertyName("scene_status")]
public string? SceneStatus { get; set; }
/// <summary>
/// 获取或设置技能 ID。
/// </summary>
[Newtonsoft.Json.JsonProperty("skill_id")]
[System.Text.Json.Serialization.JsonPropertyName("skill_id")]
public string? SkillId { get; set; }
/// <summary>
/// 获取或设置技能名称。
/// </summary>
[Newtonsoft.Json.JsonProperty("skill_name")]
[System.Text.Json.Serialization.JsonPropertyName("skill_name")]
public string? SkillName { get; set; }
/// <summary>
/// 获取或设置机器人回复的状态。
/// </summary>
[Newtonsoft.Json.JsonProperty("is_default_answer")]
[System.Text.Json.Serialization.JsonPropertyName("is_default_answer")]
public bool IsDefaultAnswer { get; set; }
/// <summary>
/// 获取或设置是否是列表选择。
/// </summary>
[Newtonsoft.Json.JsonProperty("list_options")]
[System.Text.Json.Serialization.JsonPropertyName("list_options")]
public bool IsListOptions { get; set; }
/// <summary>
/// 获取或设置是否仅选择。
/// </summary>
[Newtonsoft.Json.JsonProperty("take_options_only")]
[System.Text.Json.Serialization.JsonPropertyName("take_options_only")]
public bool IsTakeOptionsOnly { get; set; }
/// <summary>
/// 获取或设置推荐问题列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("options")]
[System.Text.Json.Serialization.JsonPropertyName("options")]
public Types.Option[]? OptionList { get; set; }
/// <summary>
/// 获取或设置槽位列表。
/// </summary>
[Newtonsoft.Json.JsonProperty("slots_info")]
[System.Text.Json.Serialization.JsonPropertyName("slots_info")]
public Types.Slot[]? SlotList { get; set; }
} }
} }

View File

@@ -1,29 +1,29 @@
using System.Xml.Serialization;
namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform namespace SKIT.FlurlHttpClient.Wechat.OpenAI.Models.Platform
{ {
/// <summary> /// <summary>
/// <para>表示 [POST] /sign/{TOKEN} 接口的请求。</para> /// <para>表示 [POST] /sign/{TOKEN} 接口的请求。</para>
/// </summary> /// </summary>
[XmlRoot("xml")] public class SignRequest : WechatOpenAIPlatformRequest
public class SignRequest : WechatOpenAIPlatformRequest, WechatOpenAIPlatformRequest.Serialization.IEncryptedXmlable
{ {
/// <summary> /// <summary>
/// 获取或设置用户 ID。 /// 获取或设置用户 ID。
/// </summary> /// </summary>
[XmlElement("userid")] [Newtonsoft.Json.JsonProperty("userid")]
[System.Text.Json.Serialization.JsonPropertyName("userid")]
public string UserId { get; set; } = string.Empty; public string UserId { get; set; } = string.Empty;
/// <summary> /// <summary>
/// 获取或设置用户昵称。 /// 获取或设置用户昵称。
/// </summary> /// </summary>
[XmlElement("username")] [Newtonsoft.Json.JsonProperty("username")]
public string Nickname { get; set; } = string.Empty; [System.Text.Json.Serialization.JsonPropertyName("username")]
public string? Nickname { get; set; }
/// <summary> /// <summary>
/// 获取或设置用户头像 URL。 /// 获取或设置用户头像 URL。
/// </summary> /// </summary>
[XmlElement("avatar", IsNullable = true)] [Newtonsoft.Json.JsonProperty("avatar")]
[System.Text.Json.Serialization.JsonPropertyName("avatar")]
public string? AvatarUrl { get; set; } public string? AvatarUrl { get; set; }
} }
} }

View File

@@ -8,6 +8,6 @@
/// <summary> /// <summary>
/// 主域名(默认)。 /// 主域名(默认)。
/// </summary> /// </summary>
public const string DEFAULT = "https://openai.weixin.qq.com/openai/"; public const string DEFAULT = "https://openai.weixin.qq.com/openapi/";
} }
} }