Привет всем, я Юпи. С тех пор, как я начал делиться знаниями, мой WeChat никогда не прекращался. В среднем я получаю сотни сообщений каждый день. Большинство из них — друзья, которые изучают программирование и спрашивают меня о программировании.
Но ведь у меня всего один человек, поэтому я не могу отвечать на все сообщения по одному, поэтому чувствую себя виноватым и бессильным.Кроме того, я обнаружил, что многие ваши вопросы повторяются, и я написал статьи, чтобы ответить большинство из них.
Итак, я решил создать бота вопросов и ответов с искусственным интеллектом, который поможет мне автоматически отвечать на общие вопросы всех и уменьшить дублирование работы.
В конце концов, я не ожидал, что меня поймал баг в процессе производства, и наделал много шуток.Заинтересованные друзья могут посмотреть видео, ха-ха:
Поскольку метод производства слишком прост, я поделюсь с вами полным руководством, чтобы вы могли легко создать своего собственного робота с искусственным интеллектом.
Учебное пособие по самодельному роботу с искусственным интеллектом
Ожидается, что весь производственный процесс займет 10 минут.
Сначала опишите требования: сделайте робота, который сможет автоматически отвечать на сообщения WeChat.
Для достижения этого требования есть два основных момента:
- Как заставить программу получать сообщения от WeChat?
- Как ответить на соответствующий контент в соответствии с сообщением?
Эти две проблемы, если нет определенных профессиональных знаний, сложно решить самостоятельно. Но теперь, в эпоху открытого исходного кода, мы можем встать на плечи гигантов и решить эти проблемы с помощью готовых технологий.
получить сообщение
Открытый исходный кодwechatyБиблиотеки для автоматизации операций WeChat, таких как отправка и получение сообщений, передача друзей, привлечение групп и т. д.
Способ использования очень прост.В файле введения проекта склада wechaty есть простейший пример кода для начала работы.Вам нужно только6 строк кода, вы можете запустить бота, который поможет вам получать сообщения!
Wechaty поддерживает почти все основные языки программирования. Код входа для JavaScript выглядит следующим образом:
import { WechatyBuilder } from 'wechaty'
// 启动
WechatyBuilder.build()
.on('scan', (qrcode, status) => console.log(`Scan QR Code to login: ${status}\nhttps://wechaty.js.org/qrcode/${encodeURIComponent(qrcode)}`))
.on('login', user => console.log(`User ${user} logged in`))
.on('message', message => console.log(`Message: ${message}`))
.start()
Объясните приведенный выше код, вы обнаружите, что в wechaty определено множество событий, таких как сканирование кода, вход пользователя в систему, прием сообщений, прием запросов на добавление в друзья и т. д. Вам не нужно заботиться о том, как событие инициируется им, вам просто нужно написать методы обработки для разных событий, например автоматический ответ на одно и то же сообщение после получения сообщения, пример кода выглядит следующим образом:
// 初始化机器人
const bot = WechatyBuilder.build({
name: 'yupi-wxrobot',
// 用于兼容不同 IM 协议,不用关心
puppet: 'wechaty-puppet-wechat',
})
// 处理消息
bot.on('message', async function (msg) {
// 获取消息发送人
const contact = msg.talker()
// 获取消息内容
const text = msg.text()
// 获取群聊信息
const room = msg.room()
// 是私聊
if (contact && text) {
// 回复相同内容
msg.say(text, contact);
}
}
Но всеПожалуйста, не надоПросто запустите приведенный выше код напрямую! Потому что как только вы запустите бота и не ограничите никнейм ответов, он будет работать для всех, кто отправит вам сообщение!
Сначала я не обратил внимания, и меня обманули. . .
Итак, если вы хотите только автоматически отвечать кому-то или сообщению в групповом чате, не забудьте добавить в код соответствующую логику фильтрации, например:
// 处理消息
bot.on('message', async function (msg) {
// 获取消息发送人
const contact = msg.talker()
// 获取消息内容
const text = msg.text()
// 获取群聊信息
const room = msg.room()
// 不处理自己的消息
if (msg.self()) {
return
}
// 群聊还是私聊
if (room) {
if(room.topic() === '鱼皮群') {
// 回复
}
} else {
if(contact.name() === '小号') {
// 回复
}
}
}
Хорошо, используя приведенный выше код, вы можете принимать сообщения и автоматически отвечать!
Итак, вам интересно, как wechaty получает сообщения WeChat? На самом деле принцип очень прост: при выполнении программы wechaty она будет использовать технологию безголового браузера, чтобы незаметно открыть веб-версию WeChat, а затем вывести QR-код входа в веб-версию WeChat на консоль, где вы запустите После того, как вы отсканируете код для входа в систему, программе нужно только прослушивать изменения в элементах страницы или автоматически запускать события кликов.
На самом деле причина очень проста: нужно преобразовать ручные операции, которые мы можем выполнять на веб-страницах, в автоматическое выполнение в фоновом режиме.
Умный ответ
Первый вопрос решен, так как же давать разные ответы на разные вопросы?
Многие одноклассники обязательно скажут, что ИИ, когда они упомянут об этом, и все это было неверно направлено из-за «разума», который я использовал. На самом деле, если это просто простой автоматический ответ, когда правила задачи могут быть сведены и перечислимы, используйтеif ... else ...Вот и все!
if(/你好/.test(text)) {
msg.say('好的');
} else if (/谢谢/.test(text)) {
msg.say('不客气');
} else if (/加群/.test(text)) {
msg.say('公众号[程序员鱼皮],回复[加群]');
} else {
msg.say('我不懂');
}
Дело не в том, что суть искусственного интеллекта в том, что если еще, ха-ха, он просто позволяет машине сделать это за вас.
Но реальность такова, что у моих читателей будут разные выражения для одного и того же вопроса, такие как «Как выучить Java?», «Я хочу выучить Java, как это выучить?» и так далее. Поэтому искусственный интеллект по-прежнему нужен.
Куда обратиться за искусственным интеллектом?
мы можем напрямую использовать微信对话开放平台Предоставляемые мощные возможности без написания ни строчки кода позволяют реализовать интеллектуальный диалог бесплатно!
адрес:openai.weixin.qq.com/
После входа сначала создайте бота:
Затем вы можете добавить роботу навыки, настроить навыки и привить роботу заданные вопросы и ответы, а также напрямую использовать стандартные навыки, предоставляемые платформой, такие как прослушивание песен, общение в чате, энциклопедия и т. д. :
Мне нужно автоматически отвечать на вопросы моих читателей, связанные с программированием, поэтому мне нужно создать новый навык. Здесь вы можете гибко настроить вопросы, разные вопросы и ответы, все с интерфейсом, и легко создать своего собственного робота:
После настройки бота можно опубликовать и использовать. Мы можем привязать робота к официальной учетной записи/мини-программе, чтобы автоматически отвечать на сообщения читателей; мы можем напрямую получить доступ к интеллектуальной службе поддержки клиентов на веб-странице H5; мы также можем вызвать открытый интерфейс в программе, чтобы использовать возможность интеллектуального диалога:
Здесь мы хотим получить ответ автоматически в программе wechaty, поэтому используйтеоткрытый интерфейсМетод также очень прост, то есть использовать библиотеку запросов для вызова интерфейса, пример кода выглядит следующим образом:
// 获取 API 签名,2小时过期
// token 需从平台获取
const url = `https://openai.weixin.qq.com/openapi/sign/${token}`;
const {signature} = (await axios.post(url, {
userid: 'test'
})).data;
// 调用 AI 接口,获取答案
async function getAnswer(userid, text) {
const apiUrl = `https://openai.weixin.qq.com/openapi/aibot/${token}`;
return (await axios.post(apiUrl, {
"signature": signature,
"userid": userid,
"query": text,
})).data?.answer;
}
Вот и все, это просто и практично, и заинтересованные студенты могут использовать его для создания множества интересных функций~
Я рыбья кожа, печень текст не простой, если поможет, надеюсь датьподобноСпасибо за поддержку.