添加项目
This commit is contained in:
218
WPFUI.Test/ChatFunction/ChatDialogue.xaml.cs
Normal file
218
WPFUI.Test/ChatFunction/ChatDialogue.xaml.cs
Normal file
@@ -0,0 +1,218 @@
|
||||
using System.Diagnostics;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
|
||||
namespace WPFUI.Test
|
||||
{
|
||||
/// <summary>
|
||||
/// ChatDialogue.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ChatDialogue
|
||||
{
|
||||
private ChatDialogueViewModel viewModel = new ChatDialogueViewModel();
|
||||
public ChatDialogue()
|
||||
{
|
||||
InitializeComponent();
|
||||
this.DataContext = viewModel;
|
||||
}
|
||||
|
||||
private void OpenHyperlink(object sender, ExecutedRoutedEventArgs e)
|
||||
{
|
||||
Process.Start(e.Parameter.ToString());
|
||||
}
|
||||
|
||||
private void ClickOnImage(object sender, System.Windows.Input.ExecutedRoutedEventArgs e)
|
||||
{
|
||||
MessageBox.Show($"URL: {e.Parameter}");
|
||||
}
|
||||
|
||||
|
||||
//_deepSeekClient = new DeepSeekClient("sk-3a3126167f1343228b1a5745bcd0bf01");
|
||||
///// <summary>
|
||||
///// DeepSeek对象
|
||||
///// </summary>
|
||||
//private DeepSeekClient _deepSeekClient;
|
||||
|
||||
///// <summary>
|
||||
///// 系统角色设定
|
||||
///// </summary>
|
||||
//private const string SysContent = "你是 DeepSeek AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言";
|
||||
|
||||
|
||||
///// <summary>
|
||||
///// 单轮流式聊天
|
||||
///// </summary>
|
||||
///// <param name="sender"></param>
|
||||
///// <param name="e"></param>
|
||||
//private async void button1_Click(object sender, RoutedEventArgs e)
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// richTextBox1.Document.Blocks.Clear();
|
||||
// //------
|
||||
// var chatReq = new ChatRequest
|
||||
// {
|
||||
// model = ChatModels.DeepseekChat,
|
||||
// messages = new List<MessagesItem> {
|
||||
// new MessagesItem { role = ChatRoles.System, content = SysContent },
|
||||
// new MessagesItem { role = ChatRoles.User, content = textBox1.Text }
|
||||
// },
|
||||
// stream = true
|
||||
// };
|
||||
// // 订阅事件
|
||||
// _deepSeekClient.MessageReceivedEventHandler -= OnMessageReceived;
|
||||
// _deepSeekClient.ErrorEventHandler -= OnErrorMsg;
|
||||
// _deepSeekClient.MessageReceivedEventHandler += OnMessageReceived;
|
||||
// _deepSeekClient.ErrorEventHandler += OnErrorMsg;
|
||||
// // 开始任务
|
||||
// await _deepSeekClient.ChatStreamAsync(chatReq).ConfigureAwait(true);
|
||||
// // 订阅SSE 消息事件
|
||||
// void OnMessageReceived(object s, ChatResponse m)
|
||||
// {
|
||||
// //Console.WriteLine("聊天内容:" + ee);
|
||||
// this.Dispatcher.Invoke(() =>
|
||||
// {
|
||||
// var msg = m.choices?.FirstOrDefault()?.delta.content;
|
||||
// if (msg != null) richTextBox1.AppendText(msg);
|
||||
// });
|
||||
// }
|
||||
// // 订阅SSE 错误事件
|
||||
// void OnErrorMsg(object s, Exception ex)
|
||||
// {
|
||||
// MessageBox.Show(ex.Message);
|
||||
// }
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// Console.WriteLine("流式聊天失败:" + ex.Message);
|
||||
// }
|
||||
//}
|
||||
|
||||
///// <summary>
|
||||
///// 单轮普通聊天
|
||||
///// </summary>
|
||||
///// <param name="sender"></param>
|
||||
///// <param name="e"></param>
|
||||
//private async void button2_Click(object sender, RoutedEventArgs e)
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// var chatReq = new ChatRequest
|
||||
// {
|
||||
// model = ChatModels.DeepseekChat,
|
||||
// messages = new List<MessagesItem> {
|
||||
// new MessagesItem { role = ChatRoles.System, content = SysContent },
|
||||
// new MessagesItem { role = ChatRoles.User, content = textBox1.Text }
|
||||
// }
|
||||
// };
|
||||
// var chatRes = await _deepSeekClient.ChatAsync(chatReq).ConfigureAwait(true);
|
||||
// Console.WriteLine("聊天内容:" + chatRes.choices?.FirstOrDefault()?.message.content);
|
||||
// Paragraph paragraph = new Paragraph();
|
||||
// paragraph.Inlines.Add(new Run(chatRes.choices?.FirstOrDefault()?.message.content));
|
||||
// richTextBox1.Document.Blocks.Add(paragraph);
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// Console.WriteLine("聊天失败:" + ex.Message);
|
||||
// }
|
||||
//}
|
||||
|
||||
///// <summary>
|
||||
///// 多轮对话列表
|
||||
///// </summary>
|
||||
//private List<MessagesItem> HistoryList = new List<MessagesItem> { new MessagesItem { role = ChatRoles.System, content = SysContent } };
|
||||
|
||||
///// <summary>
|
||||
///// 多轮流式对话
|
||||
///// </summary>
|
||||
///// <param name="sender"></param>
|
||||
///// <param name="e"></param>
|
||||
//private async void button3_Click(object sender, RoutedEventArgs e)
|
||||
//{
|
||||
|
||||
// try
|
||||
// {
|
||||
// richTextBox1.Document.Blocks.Clear();
|
||||
// //------当前要说的内容
|
||||
// HistoryList.Add(new MessagesItem { role = ChatRoles.User, content = textBox1.Text });
|
||||
// //------
|
||||
// var chatReq = new ChatRequest
|
||||
// {
|
||||
// model = ChatModels.DeepseekChat,
|
||||
// messages = HistoryList,
|
||||
// stream = true
|
||||
// };
|
||||
// // 订阅事件
|
||||
// _deepSeekClient.MessageReceivedEventHandler -= OnMessageReceived;
|
||||
// _deepSeekClient.ErrorEventHandler -= OnErrorMsg;
|
||||
// _deepSeekClient.CloseedEventHandler -= OnCloseed;
|
||||
// _deepSeekClient.MessageReceivedEventHandler += OnMessageReceived;
|
||||
// _deepSeekClient.ErrorEventHandler += OnErrorMsg;
|
||||
// _deepSeekClient.CloseedEventHandler += OnCloseed;
|
||||
// // 开始任务
|
||||
// await _deepSeekClient.ChatStreamAsync(chatReq).ConfigureAwait(true);
|
||||
// // 局部函数,订阅SSE 消息事件
|
||||
// void OnMessageReceived(object s, ChatResponse m)
|
||||
// {
|
||||
// //Console.WriteLine("聊天内容:" + ee);
|
||||
// this.Dispatcher
|
||||
// .Invoke(
|
||||
// () =>
|
||||
// {
|
||||
// var msg = m.choices?.FirstOrDefault()?.delta.content;
|
||||
// if (msg != null)
|
||||
// {
|
||||
// richTextBox1.AppendText(msg);
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// // 局部函数,订阅SSE 错误事件
|
||||
// void OnErrorMsg(object s, Exception ex)
|
||||
// {
|
||||
// MessageBox.Show(ex.Message);
|
||||
// }
|
||||
// // 局部函数,订阅SSE 关闭事件
|
||||
// void OnCloseed(object s, string ex)
|
||||
// {
|
||||
// HistoryList.Add(new MessagesItem { role = ChatRoles.Assistant, content = textBox1.Text });
|
||||
// }
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// Console.WriteLine("流式聊天失败:" + ex.Message);
|
||||
// }
|
||||
//}
|
||||
|
||||
///// <summary>
|
||||
///// 多轮普通聊天
|
||||
///// </summary>
|
||||
///// <param name="sender"></param>
|
||||
///// <param name="e"></param>
|
||||
//private async void button4_Click(object sender, RoutedEventArgs e)
|
||||
//{
|
||||
// try
|
||||
// {
|
||||
// //------当前要说的内容
|
||||
// HistoryList.Add(new MessagesItem { role = ChatRoles.User, content = textBox1.Text });
|
||||
// //-------------------
|
||||
// var chatReq = new ChatRequest
|
||||
// {
|
||||
// model = ChatModels.DeepseekChat,
|
||||
// messages = HistoryList
|
||||
// };
|
||||
// var chatRes = await _deepSeekClient.ChatAsync(chatReq).ConfigureAwait(true);
|
||||
// HistoryList.Add(new MessagesItem { role = ChatRoles.Assistant, content = textBox1.Text });
|
||||
// Console.WriteLine("聊天内容:" + chatRes.choices?.FirstOrDefault()?.message.content);
|
||||
// Paragraph paragraph = new Paragraph();
|
||||
// paragraph.Inlines.Add(new Run(chatRes.choices?.FirstOrDefault()?.message.content));
|
||||
// richTextBox1.Document.Blocks.Add(paragraph);
|
||||
// }
|
||||
// catch (Exception ex)
|
||||
// {
|
||||
// Console.WriteLine("聊天失败:" + ex.Message);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user