XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension

【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension

fix-修复了MemorableXFEChatGPT接受消息不完整的bug

b1c6407
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

4 个文件 +45 -11
Modified XFEExtension.NetCore.Test/Program.cs +30 -4
@@ -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()
Modified XFEExtension.NetCore/CyberComm/CyberCommClient.cs +0 -1
@@ -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)
Modified XFEExtension.NetCore/XFEChatGPT/MemorableXFEChatGPT.cs +13 -4
@@ -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 {
Modified XFEExtension.NetCore/XFEExtension.NetCore.csproj +2 -2
@@ -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