×

Tạo chatbot đơn giản với C# và Bot Framework

Việc tạo ra một chatbot không còn là điều xa vời với bất kỳ ai hiểu biết về lập trình và mong muốn ứng dụng những công nghệ mới vào cuộc sống. Với ngôn ngữ lập trình C# cùng Microsoft Bot Framework, một công cụ hữu ích và mạnh mẽ, bạn hoàn toàn có thể xây dựng một chatbot đơn giản nhưng hữu dụng. Trong bài viết này, chúng ta sẽ điểm qua các bước cơ bản để hiện thực hóa ý tưởng này.

Cài Đặt Các Công Cụ Cần Thiết

Đầu tiên, chúng ta cần chuẩn bị một số công cụ và môi trường để lập trình chatbot:

  1. Visual Studio: Bạn có thể tải Visual Studio từ trang chủ của Microsoft và cài đặt các thành phần cần thiết, bao gồm .NET Core và ASP.NET Core.

  2. Bot Framework SDK: Có thể cài đặt qua NuGet package management trong Visual Studio. Đây là thư viện chính mà chúng ta sẽ sử dụng để phát triển bot.

  3. Ngrok: Đây là công cụ giúp tạo một địa chỉ URL tạm thời để triển khai và kiểm tra bot trên internet.

Tạo Mới Dự Án Và Cài Đặt Gói SDK

Bước đầu tiên, hãy mở Visual Studio và tạo một dự án mới bằng cách chọn “Create a new project”. Chúng ta chọn 'ASP.NET Core Web Application' để bắt đầu.

Khi dự án tạo xong, bạn cần thêm các gói NuGet cần thiết cho Bot Framework SDK. Mở "NuGet Package Manager" và tìm kiếm các gói sau để cài đặt:

  • Microsoft.Bot.Builder
  • Microsoft.Bot.Builder.Integration.AspNet.Core

Cấu Hình Bot

Trong tập tin Startup.cs, chúng ta sẽ cấu hình bot của mình. Đầu tiên, cần thêm một vài dòng mã để cài đặt bot framework:

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers().AddNewtonsoftJson();
    services.AddSingleton<IBotFrameworkHttpAdapter, AdapterWithErrorHandler>();
    services.AddTransient<IBot, MyBot>();
}

Bạn cũng cần tạo một lớp Adapter để xử lý lỗi:

public class AdapterWithErrorHandler : BotFrameworkHttpAdapter
{
    public AdapterWithErrorHandler(IConfiguration configuration, ILogger<BotFrameworkHttpAdapter> logger)
        : base(configuration, logger)
    {
        OnTurnError = async (turnContext, exception) =>
        {
            logger.LogError($"Exception caught : {exception}");
            await turnContext.SendActivityAsync("Sorry, it looks like something went wrong.");
        };
    }
}

Viết Logic Cho Chatbot

Sau khi thiết lập xong cấu hình cơ bản, chúng ta sẽ viết logic cho chatbot trong một lớp mới, giả sử tên là MyBot. Lớp này sẽ kế thừa từ ActivityHandler:

public class MyBot : ActivityHandler
{
    protected override async Task OnMessageActivityAsync(ITurnContext<IMessageActivity> turnContext, CancellationToken cancellationToken)
    {
        var userInput = turnContext.Activity.Text;
        var replyText = $"You said: {userInput}";
        await turnContext.SendActivityAsync(MessageFactory.Text(replyText, replyText), cancellationToken);
    }
}

Trong ví dụ trên, bot sẽ nhận được tin nhắn từ người dùng và phản hồi lại với tin nhắn bạn vừa gửi.

Chạy Ngrok Để Kiểm Tra Và Triển Khai Bot

Sử dụng Ngrok để tạo một đường dẫn URL tạm thời nhằm kiểm tra bot từ một ứng dụng chat như Microsoft Teams:

  1. Mở terminal và chạy lệnh: ngrok http 3978.

  2. Copy URL mà Ngrok cung cấp (ví dụ: https://abc123.ngrok.io) và cấu hình nó vào Bot Framework Emulator hoặc cài đặt bot trên các nền tảng chat khác.

Kết Luận

Qua các bước trên, việc tạo một chatbot cơ bản với C# và Bot Framework trở nên dễ dàng hơn bao giờ hết. Không chỉ dừng lại ở việc trả lời tin nhắn đơn giản, bạn có thể mở rộng khả năng cho chatbot của mình như tích hợp với cơ sở dữ liệu, sử dụng trí tuệ nhân tạo (AI) để hiểu ngữ cảnh, và much more. Hãy thử nghiệm và phát triển thêm để tạo ra những ứng dụng chatbot phục vụ tốt hơn nhu cầu của bạn và của cộng đồng.

Comments