XFEExtension
【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore.Test/Program.cs
+30
-4
Modified
XFEExtension.NetCore/CyberComm/CyberCommClient.cs
+0
-1
Modified
XFEExtension.NetCore/XFEChatGPT/MemorableXFEChatGPT.cs
+13
-4
Modified
XFEExtension.NetCore/XFEExtension.NetCore.csproj
+2
-2
XFEstudio/XFEExtension
fix-修复了MemorableXFEChatGPT接受消息不完整的bug
b1c6407
代码差异
4 个文件
+45
-11
@@ -1,13 +1,39 @@
1
using XFEExtension.NetCore.ListExtension;
1
using XFEExtension.NetCore.XFEChatGPT;
2
2
3
3
internal class Program
4
4
{
5
private static void Main(string[] args)
5
public static MemorableXFEChatGPT XFEChatGPT { get; set; } = new MemorableXFEChatGPT();
6
public static string CurrentDialogID { get; set; } = Guid.NewGuid().ToString();
7
private static async Task Main(string[] args)
6
8
{
7
var rumorsString = "[+-RumorEntry { TimeLine = 2022/03/21, Content = 东航MU5735客机坠毁事故发生后,网络上流传多条谣言,包括坠机引发山火的视频不实、假冒失联者家属、篡改预言等。 }-+][+-RumorEntry { TimeLine = 2022/03/23, Content = 知情人称东航失事客机机长是“飞二代”,但关于机长或副驾驶故意坠机的谣言被辟谣。 }-+][+-RumorEntry { TimeLine = 2024/05/14, Content = 博主“摆烂兔兔”发布消息称东航MU742次航班因机长失踪导致延误,实则因天气原因备降金边,东航已辟谣。 }-+][+-RumorEntry { TimeLine = 2024/06/07, Content = 关于东航客机事件的谣言称副驾驶因待遇降级报复乘客,官方辟谣并指出谣言干扰调查工作,呼吁不传谣、不信谣。 }-+][+-RumorEntry { TimeLine = 2024/08/15, Content = 东航客机坠毁后,出现多种谣言,包括虚假的事故现场视频、假冒家属发声以及篡改后的预言等。 }-+]";
8
rumorsString.ToXFEList<RumorsSearcher.Model.RumorEntry>();
9
XFEChatGPT.XFEChatGPTMessageReceived += XFEChatGPT_XFEChatGPTMessageReceived;
10
XFEChatGPT.CreateDialog(CurrentDialogID, "你是一个专门负责整理谣言的人工智能,我会提供给你一些带有时间线的谣言,这其中可能会有很多不相干的信息和没有时间线的信息,你需要自己辨别判断有用信息并将其排序从最早的到最新的日期来排序,除此之外不要说任何多余的内容,格式是:[+-RumorEntry { TimeLine = 2017/2/4, Content = 你整理的第一条谣言内容 }-+][+-RumorEntry { TimeLine = 2019/8/12, Content = 你整理的第二条谣言内容 }-+][+-RumorEntry { TimeLine = 2022/10/4, Content = 你整理的第三条谣言内容 }-+][+-RumorEntry { TimeLine = 2023/1/23, Content = 你整理的第四条谣言内容 }-+]...以此类推", true, true, ChatGPTModel.gpt4o);
11
//await XFEConsole.WriteObject(XFEChatGPT, false, false);
12
//Console.WriteLine(XFEChatGPT);
13
XFEChatGPT.AskChatGPT(CurrentDialogID, Guid.NewGuid().ToString(), "测试谣言");
14
Console.ReadLine();
9
15
}
10
16
17
private static void XFEChatGPT_XFEChatGPTMessageReceived(object? sender, XFEExtension.NetCore.XFEChatGPT.ChatGPTInnerClass.HelperClass.MemorableGPTMessageReceivedEventArgs e)
18
{
19
switch (e.GenerateState)
20
{
21
case GenerateState.Start:
22
Console.Write(e.Message);
23
break;
24
case GenerateState.Continue:
25
Console.Write(e.Message);
26
break;
27
case GenerateState.End:
28
Console.WriteLine(e.Message);
29
break;
30
case GenerateState.Error:
31
Console.WriteLine(e.Message);
32
break;
33
default:
34
break;
35
}
36
}
11
37
//[SMTest]
12
38
//[UseXFEConsole]
13
39
//public static async Task TestMethod()
@@ -114,7 +114,6 @@ public class CyberCommClient
114
114
}
115
115
if (receiveResult.MessageType == WebSocketMessageType.Binary)
116
116
{
117
118
117
MessageReceived?.Invoke(this, new CyberCommClientEventArgsImpl(ClientWebSocket, receivedBinaryBuffer));
119
118
}
120
119
if (receiveResult.MessageType == WebSocketMessageType.Close)
@@ -1,4 +1,5 @@
1
using System.Net.WebSockets;
1
using System;
2
using System.Net.WebSockets;
2
3
using System.Text;
3
4
using XFEExtension.NetCore.XFEChatGPT.ChatGPTInnerClass.DefaultClass;
4
5
using XFEExtension.NetCore.XFEChatGPT.ChatGPTInnerClass.HelperClass;
@@ -391,9 +392,17 @@ public class MemorableXFEChatGPT : XFEChatGPTBase
391
392
while (true)
392
393
{
393
394
#region 读取消息
394
byte[] buffer = new byte[1024];
395
WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//接收消息
396
string nowReceivedMessage = Encoding.UTF8.GetString(buffer, 0, result.Count);//将消息转换为字符串
395
byte[] receiveBuffer = new byte[1024];
396
WebSocketReceiveResult receiveResult = await webSocket.ReceiveAsync(new ArraySegment<byte>(receiveBuffer), CancellationToken.None);
397
var bufferList = new List<byte>();
398
bufferList.AddRange(receiveBuffer.Take(receiveResult.Count));
399
while (!receiveResult.EndOfMessage)
400
{
401
receiveResult = await webSocket.ReceiveAsync(new ArraySegment<byte>(receiveBuffer), CancellationToken.None);
402
bufferList.AddRange(receiveBuffer.Take(receiveResult.Count));
403
}
404
var receivedBinaryBuffer = bufferList.ToArray();
405
var nowReceivedMessage = Encoding.UTF8.GetString(receivedBinaryBuffer);
397
406
#endregion
398
407
if (nowDialog.XFEComProtocol == XFEComProtocol.XFEFAST)
399
408
{
@@ -5,7 +5,7 @@
5
5
<ImplicitUsings>enable</ImplicitUsings>
6
6
<Nullable>enable</Nullable>
7
7
<GenerateDocumentationFile>True</GenerateDocumentationFile>
8
<Version>3.0.5</Version>
8
<Version>3.0.6</Version>
9
9
<Title>XFEExtension</Title>
10
10
<RepositoryUrl>https://github.com/XFEstudio/XFEExtension</RepositoryUrl>
11
11
<AnalysisLevel>latest</AnalysisLevel>
@@ -20,7 +20,7 @@
20
20
<PackageTags>XFE;拓展;GPT;Server;服务器;测试;XFEExtension</PackageTags>
21
21
<PackageReleaseNotes>## 调整
22
22
23
修复了ToXFEList和ToXFEArray的空数组问题
23
修复了MemorableXFEChatGPT接受消息不完整的bug
24
24
25
25
## 新增
26
26