XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore/FormatExtension/XFEDictionary.cs
+1
-1
Modified
XFEExtension.NetCore/XFEChatGPT/ChatGPTInnerClass/HelperClass/PrivateReceivedGPTMessage.cs
+1
-1
Modified
XFEExtension.NetCore/XFEChatGPT/ChatGPTInnerClass/HelperClass/XFEGPTMessageCollection.cs
+20
-52
Modified
XFEExtension.NetCore/XFEChatGPT/ChatGPTModel.cs
+2
-1
Modified
XFEExtension.NetCore/XFEChatGPT/XFEChatGPT.cs
+10
-60
Modified
XFEExtension.NetCore/XFPManager/XProperty.cs
+3
-12
XFEstudio/XFEExtension
完善部分代码逻辑
19c2beb
代码差异
6 个文件
+37
-127
@@ -7,6 +7,7 @@ namespace XFEExtension.NetCore.FormatExtension;
7
7
/// </summary>
8
8
public class XFEDictionary : ICollection<XFEEntry>
9
9
{
10
private List<XFEEntry> xFEDictionaryList = [];
10
11
/// <summary>
11
12
/// 字典分隔符
12
13
/// </summary>
@@ -15,7 +16,6 @@ public class XFEDictionary : ICollection<XFEEntry>
15
16
/// 条目分隔符
16
17
/// </summary>
17
18
public static string[] EntrySeparator { get; } = ["[+-", "-+]"];
18
private List<XFEEntry> xFEDictionaryList = [];
19
19
/// <summary>
20
20
/// 字典中的条目数
21
21
/// </summary>
@@ -2,4 +2,4 @@
2
2
3
3
namespace XFEExtension.NetCore.XFEChatGPT.ChatGPTInnerClass.HelperClass;
4
4
5
class PrivateReceivedGPTMessage(string id, string @object, long created, string model, TokenUsage usage, PrivateMessageChoice[] choices) : ReceivedGPTMessage(id, @object, created, model, usage, choices);
5
class PrivateReceivedGPTMessage(string id, string @object, long created, string model, TokenUsage usage, MessageChoice[] choices) : ReceivedGPTMessage(id, @object, created, model, usage, choices);
@@ -72,34 +72,26 @@ public class XFEGPTMessageCollection : IEnumerable<XFEGPTMessage>
72
72
/// 添加XFEGPT消息
73
73
/// </summary>
74
74
/// <param name="xFEGPTMessage"></param>
75
public void Add(XFEGPTMessage xFEGPTMessage)
76
{
77
xFEGPTMessages.Add(xFEGPTMessage);
78
}
75
public void Add(XFEGPTMessage xFEGPTMessage) => xFEGPTMessages.Add(xFEGPTMessage);
76
79
77
/// <summary>
80
78
/// 添加XFEGPT消息
81
79
/// </summary>
82
80
/// <param name="xFEGPTMessages"></param>
83
public void AddRange(XFEGPTMessage[] xFEGPTMessages)
84
{
85
this.xFEGPTMessages.AddRange(xFEGPTMessages);
86
}
81
public void AddRange(XFEGPTMessage[] xFEGPTMessages) => this.xFEGPTMessages.AddRange(xFEGPTMessages);
82
87
83
/// <summary>
88
84
/// 根据指定的ID移除XFEGPT消息
89
85
/// </summary>
90
86
/// <param name="index"></param>
91
public void RemoveAt(int index)
92
{
93
xFEGPTMessages.RemoveAt(index);
94
}
87
public void RemoveAt(int index) => xFEGPTMessages.RemoveAt(index);
88
95
89
/// <summary>
96
90
/// 移除XFEGPT消息
97
91
/// </summary>
98
92
/// <param name="xFEGPTMessage"></param>
99
public void Remove(XFEGPTMessage xFEGPTMessage)
100
{
101
xFEGPTMessages.Remove(xFEGPTMessage);
102
}
93
public void Remove(XFEGPTMessage xFEGPTMessage) => xFEGPTMessages.Remove(xFEGPTMessage);
94
103
95
/// <summary>
104
96
/// 根据指定的ID在其后插入XFEGPT消息
105
97
/// </summary>
@@ -110,37 +102,25 @@ public class XFEGPTMessageCollection : IEnumerable<XFEGPTMessage>
110
102
{
111
103
for (var i = 0; i < xFEGPTMessages.Count; i++)
112
104
{
113
if (xFEGPTMessages[i].MessageId == messageId)
114
{
115
xFEGPTMessages.Insert(i, xFEGPTMessage);
116
return;
117
}
105
if (xFEGPTMessages[i].MessageId != messageId)
106
continue;
107
xFEGPTMessages.Insert(i, xFEGPTMessage);
108
return;
118
109
}
119
110
throw new XFEChatGPTException("消息集合中没有指定ID的消息!");
120
111
}
121
112
/// <summary>
122
113
/// 清除XFEGPT消息
123
114
/// </summary>
124
public void Clear()
125
{
126
xFEGPTMessages.Clear();
127
}
115
public void Clear() => xFEGPTMessages.Clear();
116
128
117
/// <summary>
129
118
/// 通过消息ID获取XFEGPT消息
130
119
/// </summary>
131
120
/// <param name="messageId"></param>
132
121
/// <returns></returns>
133
public XFEGPTMessage? GetXFEGPTMessageByMessageId(string messageId)
134
{
135
foreach (var xFEGPTMessage in xFEGPTMessages)
136
{
137
if (xFEGPTMessage.MessageId == messageId)
138
{
139
return xFEGPTMessage;
140
}
141
}
142
return null;
143
}
122
public XFEGPTMessage? GetXFEGPTMessageByMessageId(string messageId) => xFEGPTMessages.FirstOrDefault(xFEGPTMessage => xFEGPTMessage.MessageId == messageId);
123
144
124
/// <summary>
145
125
/// 获取本集合的GPTMessage数组
146
126
/// </summary>
@@ -148,10 +128,7 @@ public class XFEGPTMessageCollection : IEnumerable<XFEGPTMessage>
148
128
public GPTMessage[] GetGPTMessages()
149
129
{
150
130
List<GPTMessage> gPTMessages = [];
151
foreach (var xFEGPTMessage in xFEGPTMessages)
152
{
153
gPTMessages.Add(xFEGPTMessage.GPTMessage);
154
}
131
gPTMessages.AddRange(xFEGPTMessages.Select(xFEGPTMessage => xFEGPTMessage.GPTMessage));
155
132
return [.. gPTMessages];
156
133
}
157
134
/// <summary>
@@ -161,10 +138,7 @@ public class XFEGPTMessageCollection : IEnumerable<XFEGPTMessage>
161
138
public string[] GetGPTMessageStrings()
162
139
{
163
140
List<string> gPTMessages = [];
164
foreach (var xFEGPTMessage in xFEGPTMessages)
165
{
166
gPTMessages.Add(xFEGPTMessage.GPTMessage.Content);
167
}
141
gPTMessages.AddRange(xFEGPTMessages.Select(xFEGPTMessage => xFEGPTMessage.GPTMessage.Content));
168
142
return [.. gPTMessages];
169
143
}
170
144
/// <summary>
@@ -174,14 +148,8 @@ public class XFEGPTMessageCollection : IEnumerable<XFEGPTMessage>
174
148
/// <returns></returns>
175
149
public XFEGPTMessage this[int index]
176
150
{
177
get
178
{
179
return xFEGPTMessages[index];
180
}
181
set
182
{
183
xFEGPTMessages[index] = value;
184
}
151
get => xFEGPTMessages[index];
152
set => xFEGPTMessages[index] = value;
185
153
}
186
154
/// <summary>
187
155
/// 获取最后一个角色
@@ -1,4 +1,5 @@
1
namespace XFEExtension.NetCore.XFEChatGPT;
1
// ReSharper disable InconsistentNaming
2
namespace XFEExtension.NetCore.XFEChatGPT;
2
3
3
4
/// <summary>
4
5
/// ChatGPT的模型
@@ -21,15 +21,7 @@ public class XFEChatGPT : XFEChatGPTBase
21
21
/// </summary>
22
22
public string? SystemString
23
23
{
24
get
25
{
26
if (xFEAskGPTMessage.IsSelfEditData)
27
{
28
throw new XFEChatGPTException("自定义数据模式下不可获取");
29
}
30
31
return xFEAskGPTMessage.SystemContent;
32
}
24
get => xFEAskGPTMessage.IsSelfEditData ? throw new XFEChatGPTException("自定义数据模式下不可获取") : xFEAskGPTMessage.SystemContent;
33
25
set
34
26
{
35
27
if (xFEAskGPTMessage.IsSelfEditData)
@@ -45,15 +37,7 @@ public class XFEChatGPT : XFEChatGPTBase
45
37
/// </summary>
46
38
public string? AskContent
47
39
{
48
get
49
{
50
if (xFEAskGPTMessage.IsSelfEditData)
51
{
52
throw new XFEChatGPTException("自定义数据模式下不可获取");
53
}
54
55
return xFEAskGPTMessage.AskContent;
56
}
40
get => xFEAskGPTMessage.IsSelfEditData ? throw new XFEChatGPTException("自定义数据模式下不可获取") : xFEAskGPTMessage.AskContent;
57
41
set
58
42
{
59
43
if (xFEAskGPTMessage.IsSelfEditData)
@@ -69,15 +53,7 @@ public class XFEChatGPT : XFEChatGPTBase
69
53
/// </summary>
70
54
public ChatGPTModel GPTModel
71
55
{
72
get
73
{
74
if (xFEAskGPTMessage.IsSelfEditData)
75
{
76
return xFEAskGPTMessage.EnvironmentGPTData!.Model.GetModel();
77
}
78
79
return xFEAskGPTMessage.ChatGPTModel!.GetModel();
80
}
56
get => xFEAskGPTMessage.IsSelfEditData ? xFEAskGPTMessage.EnvironmentGPTData!.Model.GetModel() : xFEAskGPTMessage.ChatGPTModel!.GetModel();
81
57
set
82
58
{
83
59
if (xFEAskGPTMessage.IsSelfEditData)
@@ -93,51 +69,25 @@ public class XFEChatGPT : XFEChatGPTBase
93
69
/// <summary>
94
70
/// XFE通信协议
95
71
/// </summary>
96
public XFEComProtocol XFEComProtocol
97
{
98
get
99
{
100
return xFEAskGPTMessage.ComProtocol;
101
}
102
}
72
public XFEComProtocol XFEComProtocol => xFEAskGPTMessage.ComProtocol;
73
103
74
/// <summary>
104
75
/// 设置是否为自定义数据模式
105
76
/// </summary>
106
public bool IsSelfEditData
107
{
108
get
109
{
110
return xFEAskGPTMessage.IsSelfEditData;
111
}
112
}
77
public bool IsSelfEditData => xFEAskGPTMessage.IsSelfEditData;
78
113
79
/// <summary>
114
80
/// 流式输出(打字效果)还是一次性输出
115
81
/// </summary>
116
public bool StreamMode
117
{
118
get
119
{
120
if (xFEAskGPTMessage.IsSelfEditData)
121
{
122
return xFEAskGPTMessage.EnvironmentGPTData!.Stream;
123
}
82
public bool StreamMode => xFEAskGPTMessage.IsSelfEditData ? xFEAskGPTMessage.EnvironmentGPTData!.Stream : xFEAskGPTMessage.Stream;
124
83
125
return xFEAskGPTMessage.Stream;
126
}
127
}
128
84
/// <summary>
129
85
/// ChatGPT的环境数据
130
86
/// </summary>
131
87
public EnvironmentGPTData? EnvironmentGPTData
132
88
{
133
get
134
{
135
return xFEAskGPTMessage.EnvironmentGPTData;
136
}
137
set
138
{
139
xFEAskGPTMessage.EnvironmentGPTData = value;
140
}
89
get => xFEAskGPTMessage.EnvironmentGPTData;
90
set => xFEAskGPTMessage.EnvironmentGPTData = value;
141
91
}
142
92
#endregion
143
93
#region 公有方法
@@ -2,16 +2,7 @@
2
2
3
3
internal class XProperty
4
4
{
5
private object? property;
6
public object? Property
7
{
8
get { return property; }
9
set { property = value; }
10
}
11
private string? propertyName;
12
public string? Name
13
{
14
get { return propertyName; }
15
set { propertyName = value; }
16
}
5
public object? Property { get; set; }
6
7
public string? Name { get; set; }
17
8
}