1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
| Imports Ohh.ChatAi.TotalApi.DeepSeek Imports Ohh.ChatAi.TotalApi.DeepSeek.Models Imports Ohh.ChatAi.TotalApi.DeepSeek.Models.Consts Imports Ohh.ChatAi.TotalApi.MoonshotKimi
Public Class DeepSeekExample Private _deepSeekClient As DeepSeekClient
Private Const SysContent As String = "你是 DeepSeek AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言"
Public Sub New()
InitializeComponent() _deepSeekClient = New DeepSeekClient("sk-xxxxxxxxxxxxxxx")
End Sub Private Sub DeepSeekExample_Load(sender As Object, e As EventArgs) Handles MyBase.Load
End Sub
Private Async Sub button1_Click(sender As Object, e As EventArgs) Handles button1.Click Try
richTextBox1.Clear() Dim chatReq As New ChatRequest With { .model = ChatModels.DeepseekChat, .messages = New List(Of MessagesItem) From { New MessagesItem With {.role = ChatRoles.System, .content = SysContent}, New MessagesItem With {.role = ChatRoles.User, .content = textBox1.Text} }, .stream = True } RemoveHandler _deepSeekClient.MessageReceivedEventHandler, AddressOf OnMessageReceived RemoveHandler _deepSeekClient.ErrorEventHandler, AddressOf OnErrorMsg AddHandler _deepSeekClient.MessageReceivedEventHandler, AddressOf OnMessageReceived AddHandler _deepSeekClient.ErrorEventHandler, AddressOf OnErrorMsg Await _deepSeekClient.ChatStreamAsync(chatReq) Catch ex As Exception Console.WriteLine("流式聊天失败:" + ex.Message) End Try End Sub
Sub OnMessageReceived(s As Object, m As ChatResponse) Invoke(Sub() Dim msg As String = m.choices?.FirstOrDefault()?.delta.content If Not String.IsNullOrWhiteSpace(msg) Then richTextBox1.AppendText(msg.Replace("vbLf", vbCrLf)) End Sub) End Sub
Sub OnErrorMsg(s As Object, ex As Exception) MessageBox.Show(ex.Message) End Sub
Private Async Sub button2_Click(sender As Object, e As EventArgs) Handles button2.Click Try
Dim chatReq As New ChatRequest With { .model = ChatModels.DeepseekChat, .messages = New List(Of MessagesItem) From { New MessagesItem With {.role = ChatRoles.System, .content = SysContent}, New MessagesItem With {.role = ChatRoles.User, .content = textBox1.Text} } } Dim chatRes As ChatResponse = Await _deepSeekClient.ChatAsync(chatReq) Console.WriteLine("聊天内容:" & chatRes.choices?.FirstOrDefault()?.message.content) richTextBox1.Text = chatRes.choices?.FirstOrDefault()?.message.content.Replace("vbLf", vbCrLf)
Catch ex As Exception
Console.WriteLine("聊天失败:" & ex.Message) End Try End Sub
Private HistoryList As New List(Of MessagesItem) From {New MessagesItem With {.role = ChatRoles.System, .content = SysContent}}
Private Async Sub button3_Click(sender As Object, e As EventArgs) Handles button3.Click Try
richTextBox1.Clear() HistoryList.Add(New MessagesItem With {.role = ChatRoles.User, .content = textBox1.Text}) Dim chatReq As New ChatRequest With { .model = ChatModels.DeepseekChat, .messages = HistoryList, .stream = True } RemoveHandler _deepSeekClient.MessageReceivedEventHandler, AddressOf OnMessageReceived RemoveHandler _deepSeekClient.ErrorEventHandler, AddressOf OnErrorMsg RemoveHandler _deepSeekClient.CloseedEventHandler, AddressOf OnCloseed AddHandler _deepSeekClient.MessageReceivedEventHandler, AddressOf OnMessageReceived AddHandler _deepSeekClient.ErrorEventHandler, AddressOf OnErrorMsg AddHandler _deepSeekClient.CloseedEventHandler, AddressOf OnCloseed Await _deepSeekClient.ChatStreamAsync(chatReq) Catch ex As Exception Console.WriteLine("流式聊天失败:" + ex.Message) End Try End Sub
Sub OnCloseed(s As Object, ex As String) HistoryList.Add(New MessagesItem With {.role = ChatRoles.Assistant, .content = textBox1.Text}) End Sub
Private Async Sub button4_Click(sender As Object, e As EventArgs) Handles button4.Click Try HistoryList.Add(New MessagesItem With {.role = ChatRoles.User, .content = textBox1.Text}) Dim chatReq As New ChatRequest With { .model = ChatModels.DeepseekChat, .messages = HistoryList } Dim chatRes As ChatResponse = Await _deepSeekClient.ChatAsync(chatReq) Console.WriteLine("聊天内容:" & chatRes.choices?.FirstOrDefault()?.message.content) HistoryList.Add(New MessagesItem With {.role = ChatRoles.Assistant, .content = textBox1.Text}) richTextBox1.Text = chatRes.choices?.FirstOrDefault()?.message.content.Replace("vbLf", vbCrLf)
Catch ex As Exception
Console.WriteLine("聊天失败:" & ex.Message) End Try End Sub End Class
|