using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;
namespace Szmedi.RvKits.RvScript
{
///
/// ChatDialogue.xaml 的交互逻辑
///
public partial class ChatDialogue
{
private readonly ChatDialogueViewModel viewModel = new ChatDialogueViewModel();
public ChatDialogue()
{
InitializeComponent();
this.DataContext = viewModel;
}
//_deepSeekClient = new DeepSeekClient("sk-3a3126167f1343228b1a5745bcd0bf01");
/////
///// DeepSeek对象
/////
//private DeepSeekClient _deepSeekClient;
/////
///// 系统角色设定
/////
//private const string SysContent = "你是 DeepSeek AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言";
/////
///// 单轮流式聊天
/////
/////
/////
//private async void button1_Click(object sender, RoutedEventArgs e)
//{
// try
// {
// richTextBox1.Document.Blocks.Clear();
// //------
// var chatReq = new ChatRequest
// {
// model = ChatModels.DeepseekChat,
// messages = new List {
// 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);
// }
//}
/////
///// 单轮普通聊天
/////
/////
/////
//private async void button2_Click(object sender, RoutedEventArgs e)
//{
// try
// {
// var chatReq = new ChatRequest
// {
// model = ChatModels.DeepseekChat,
// messages = new List {
// 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);
// }
//}
/////
///// 多轮对话列表
/////
//private List HistoryList = new List { new MessagesItem { role = ChatRoles.System, content = SysContent } };
/////
///// 多轮流式对话
/////
/////
/////
//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);
// }
//}
/////
///// 多轮普通聊天
/////
/////
/////
//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);
// }
//}
}
}