add: 修改部分注释

This commit is contained in:
jackfiled 2023-11-25 18:34:58 +08:00
parent da71e8d4df
commit bd1cc08bba
13 changed files with 77 additions and 2 deletions

View File

@ -5,11 +5,27 @@ namespace Katheryne.Abstractions;
/// </summary>
public interface IChatRobot
{
/// <summary>
/// 定义机器人的名称
/// </summary>
public string RobotName { get; }
/// <summary>
/// 机器人在启动时输出的对话
/// </summary>
/// <returns>对话列表</returns>
public IEnumerable<string> OnChatStart();
/// <summary>
/// 机器人在结束对话时输出的对话列表
/// </summary>
/// <returns>对话列表</returns>
public IEnumerable<string> OnChatStop();
/// <summary>
/// 机器人在获得用户输入时输出的对话列表
/// </summary>
/// <param name="input">用户的输入</param>
/// <returns>机器人输出的对话列表</returns>
public IEnumerable<string> ChatNext(string input);
}

View File

@ -3,7 +3,7 @@ using Katheryne.Exceptions;
namespace Katheryne.Abstractions;
/// <summary>
/// 聊天机器人接口
/// 聊天机器人工厂接口
/// </summary>
public interface IChatRobotFactory
{

View File

@ -5,9 +5,21 @@ namespace Katheryne.Abstractions;
/// </summary>
public interface IParamsModule
{
/// <summary>
/// 模块的名称
/// </summary>
public string ModuleName { get; }
/// <summary>
/// 获得模块中特定指定参数的文本
/// </summary>
/// <param name="param">指定参数</param>
public string this[string param] { get; }
/// <summary>
/// 判断模块是否提供指定参数
/// </summary>
/// <param name="param">指定参数</param>
/// <returns>如果为真,说明模块提供该参数,反之没有提供</returns>
public bool ContainsParam(string param);
}

View File

@ -1,3 +1,8 @@
namespace Katheryne.Models;
/// <summary>
/// 格式化标记
/// </summary>
/// <param name="Value">原始字符串</param>
/// <param name="Index">在匹配结果中的序号</param>
public record FormatTag(string Value, int Index);

View File

@ -1,3 +1,9 @@
namespace Katheryne.Models;
/// <summary>
/// 语法中的模块参数
/// </summary>
/// <param name="OriginString">原始字符串</param>
/// <param name="Module">模块名称</param>
/// <param name="Param">参数</param>
public record GrammarParam(string OriginString, string Module, string Param);

View File

@ -3,6 +3,9 @@ using Katheryne.Exceptions;
namespace Katheryne.Models;
/// <summary>
/// 语法树
/// </summary>
public class GrammarTree
{
private readonly Dictionary<string, InnerStage> _stages = new();

View File

@ -1,5 +1,8 @@
namespace Katheryne.Models;
/// <summary>
/// 词法模型
/// </summary>
public class LexicalModel
{
public required string RobotName { get; set; }

View File

@ -27,10 +27,21 @@ public class StringFormatter
GetFormatTags();
}
/// <summary>
/// 字符串是否需要进行格式化
/// </summary>
public bool IsFormat => _formatTags.Count != 0 || _params.Count != 0;
/// <summary>
/// 原始字符串
/// </summary>
public string RowString => _originString;
/// <summary>
/// 格式化字符串
/// </summary>
/// <param name="collection">正则表达式匹配的结果列表</param>
/// <returns>格式化之后的字符串</returns>
public string Format(GroupCollection collection)
{
var result = new string(_originString);
@ -54,6 +65,10 @@ public class StringFormatter
return result;
}
/// <summary>
/// 解析字符串中需要格式化的标签
/// </summary>
/// <exception cref="GrammarException">文法中调用的模块不存在</exception>
private void GetFormatTags()
{
List<int> tagIndices = new();

View File

@ -3,6 +3,9 @@ using Katheryne.Abstractions;
namespace Katheryne.Modules;
/// <summary>
/// 参数模块实现基类
/// </summary>
public abstract class ModuleBase : IParamsModule
{
protected readonly Dictionary<string, Func<string>> Functions = new();

View File

@ -4,6 +4,9 @@ using Katheryne.Exceptions;
namespace Katheryne.Modules;
/// <summary>
/// 提供天气服务的模块
/// </summary>
public class WeatherModule : ModuleBase
{
private static readonly HttpClient s_httpClient = new();

View File

@ -8,6 +8,9 @@ namespace Katheryne;
public static class ServiceCollectionExtensions
{
/// <summary>
/// 在服务集合中添加Katheryne DSL解释机器人服务
/// </summary>
public static void AddKatheryne(this IServiceCollection collection)
{
collection.AddSingleton<YamlDeserializerFactory>();

View File

@ -6,6 +6,9 @@ using YamlDotNet.Serialization;
namespace Katheryne.Services;
/// <summary>
/// Katheryne 聊天机器人工厂实现
/// </summary>
public class KatheryneChatRobotFactory : IChatRobotFactory
{
private readonly YamlDeserializerFactory _deserializerFactory;

View File

@ -3,6 +3,9 @@ using YamlDotNet.Serialization.NamingConventions;
namespace Katheryne.Services;
/// <summary>
/// YAML 反序列化对象工厂
/// </summary>
public class YamlDeserializerFactory
{
private readonly DeserializerBuilder _builder;