C#聊天机器人:从零编写智能助手

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

您的第一个C#聊天机器人:从想法到可运行的助手

\n\n

您是否曾想创建自己的智能助手?不是那种只会回复“你好”的,而是一个真正的机器人,可以订披萨、提醒会议或管理聊天。好消息是:您不需要成为机器学习专家。只需了解C#并有几个空闲的晚上即可。

\n\n

在本文中,我们将详细讲解如何从零编写一个C#聊天机器人。没有魔法——只有清晰的代码、正确的架构和实用建议。您将学习如何连接到Telegram Bot API、处理命令以及构建对话。开始吧!

\n\n

为什么C#是聊天机器人的理想选择?

\n\n

许多人认为机器人只能用Python或JavaScript编写。但C#是完成这项任务强大且被低估的工具。原因如下:

\n\n
    \n
  • 强类型——您将在编译阶段捕获错误,而不是在生产环境中。
  • \n
  • Async/await——机器人需要同时处理数千个请求。C#完美胜任。
  • \n
  • .NET生态系统——现成的库支持Telegram、Discord、Slack甚至自定义协议。
  • \n
  • 高性能——.NET Core / .NET 8运行快速且内存占用低。
  • \n
\n\n

如果您已经在使用C#,那么您已经走在创建专业聊天机器人的半路上。如果没有,这也是一个开始的好理由。

\n\n

规划架构:确保机器人不会在第一天就崩溃

\n\n

在编写代码之前,让我们先思考一下我们的C#聊天机器人将如何构建。糟糕的架构是90%问题的根源。好消息是:对于一个简单的机器人,三个组件就足够了:

\n\n
    \n
  • API客户端——与即时通讯软件(Telegram、VK、Discord)通信。
  • \n
  • 命令处理器——解析消息并决定做什么。
  • \n
  • 逻辑——实际功能:搜索、计算、数据库查询。
  • \n
\n\n

我们将使用责任链模式(Chain of Responsibility)来处理命令。这既灵活又易于扩展。添加一个新命令只需5分钟。

\n\n

准备工作:需要安装什么

\n\n

我们需要:

\n
    \n
  • .NET SDK 8.0或更高版本——从官方网站下载。
  • \n
  • 任意IDE:Visual Studio、Rider或VS Code。
  • \n
  • 一个Telegram账户(用于测试)。
  • \n
\n\n

创建一个新项目:

\n
dotnet new console -n MyTelegramBot\ncd MyTelegramBot\ndotnet add package Telegram.Bot
\n\n

Telegram.Bot库是C#中最流行的。它完全覆盖了Telegram API并得到积极维护。

\n\n

获取机器人令牌

\n\n

登录Telegram,找到@BotFather并执行命令/newbot。按照说明操作。最后您将获得一个令牌——一个类似这样的秘密字符串:

\n
1234567890:ABCdefGHIjklmNOPqrstUVwxyz-1234567
\n\n

重要:切勿公开发布令牌。请使用环境变量或配置文件。

\n\n

编写代码:连接到Telegram

\n\n

我们从最简单的开始——一个对任何消息都回复“你好!”的机器人。

\n\n
using Telegram.Bot;\nusing Telegram.Bot.Types;\nusing Telegram.Bot.Polling;\n\nvar botClient = new TelegramBotClient("您的令牌");\n\nusing var cts = new CancellationTokenSource();\n\nvar receiverOptions = new ReceiverOptions\n{\n    AllowedUpdates = { } // 接收所有类型的更新\n};\n\nbotClient.StartReceiving(\n    updateHandler: HandleUpdateAsync,\n    pollingErrorHandler: HandlePollingErrorAsync,\n    receiverOptions: receiverOptions,\n    cancellationToken: cts.Token\n);\n\nConsole.WriteLine("机器人已启动。按任意键停止。");\nConsole.ReadKey                

博客

书籍推荐