78 lines
2.5 KiB
C#
78 lines
2.5 KiB
C#
|
||
|
||
using System.Text.Json;
|
||
using DeepSeek.Core;
|
||
using DeepSeek.Core.Models;
|
||
using Mliybs.QQBot.Bots.WebSocket;
|
||
|
||
namespace AGSS.QQBot
|
||
{
|
||
public class QQBot:BackgroundService
|
||
{
|
||
|
||
|
||
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
|
||
{
|
||
|
||
try
|
||
{
|
||
|
||
string id = "102802431";
|
||
string secret = "VTRPNLJHFEDCBA98888888889ABCDEFH";
|
||
|
||
|
||
using var bot = new WebSocketBot(id, secret); // 此处的id与secret为外部填入的参数
|
||
|
||
// 该方法会返回ReadyEvent对象,只要没有抛出异常就视为连接成功
|
||
// 方法参数填入需要订阅的事件,默认不填表示订阅私信与群聊事件(不包括频道私信)
|
||
// 使用位或运算订阅多个事件,如WebSocketIntent.GroupAndC2cEvent | WebSocketIntent.PublicGuildMessages
|
||
await bot.ConnectAsync();
|
||
|
||
bot.MessageReceived.Subscribe(async x =>
|
||
{
|
||
if (x.Content == " test")
|
||
{
|
||
|
||
}
|
||
else
|
||
{
|
||
// Create an instance using the apiKey
|
||
var client = new DeepSeekClient("sk-e18c1c1fb9c94888a4e59328436640b6");
|
||
|
||
// Construct the request body
|
||
var request = new ChatRequest
|
||
{
|
||
Messages = [
|
||
Message.NewUserMessage(x.Content)
|
||
],
|
||
// Specify the model
|
||
Model = Constant.Model.ChatModel
|
||
};
|
||
|
||
var chatResponse = await client.ChatAsync(request, new CancellationToken());
|
||
if (chatResponse is null)
|
||
{
|
||
Console.WriteLine(client.ErrorMsg);
|
||
}
|
||
await x.ReplyAsync(chatResponse?.Choices.First().Message?.Content);
|
||
}
|
||
Console.WriteLine(x.Content);
|
||
// 回复消息
|
||
});
|
||
|
||
bot.KeepRunning(); // 如果当前线程为主线程请调用该方法或Console.ReadLine()卡住线程
|
||
|
||
|
||
}
|
||
catch (Exception e)
|
||
{
|
||
Console.WriteLine($"启动失败了{e}");
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
}
|
||
}
|
||
} |