给微信公众号增添聊天机器人功能

Dify、Coze与LangChain对比:AI应用开发工具选型指南 在探索如何快速构建AI应用时,开发者们常常面临一个选择:是使用功能强大但学习曲线陡峭的框架,还是选择上手简单但可能限制灵活性的平台?Dify、Coze和LangChain正是当前市场上解决这一核心矛盾的三类代表性工具。本文将从开发者视角,深入剖析这三者的定位、架构、核心能力与适用场景,通过对比分析,帮助你根据项目需求(无论是个人实验、快速原型还是企业级生产应用)做出最合适的技术选型。我们将避开抽象的产品介绍,聚焦于实际的开发体验、代码集成、部署流程和工程化考量,让你不仅能理解它们是什么,更能清晰地知道在什么 阅读详情

原文地址:http://hello1010.com/wechat-robot/


今天我们来看看有哪些比较好玩的聊天机器人,并且通过微信公众号搭建一个自己的聊天机器人。

QQ机器人

腾讯有一个可以聊天的QQ机器人,当时觉得特别好玩,它会不厌其烦地陪你聊天,不吃不喝。它的QQ号是:615050000。

小黄鸡

曾经非常火的人人网小黄鸡聊天机器人,陪着大学生度过了多少个空虚寂寞冷的日日夜夜。在这里可以找到开发文档:赛科机器人 。它提供了一个快速接入微信后台的功能:


假如你的微信公众号没有自己开发的功能,那么只要按照下面的“微信接口”说明,在微信公众号后台设置参数即可。

假如你的微信公众号已经有自己的功能,现在又想加入小黄鸡的功能,那么就要自己开发了。这里特别注意,msg参数需要GBK编码。

下面给出关键性代码(php):

    public function response($postObj){
    $r["r"] = false;
    $response = getWebCont(SK_ROBOT_API . iconv("UTF-8","GB2312//IGNORE", $postObj['content']));
    //返回的格式是否正确,假如正确,是以[msg]开头的
    if(preg_match(SK_REG_ROBOT_RESPONSE_MSG_BEGIN, $response , $match)){
        $response = str_replace("[msg]" , "" , $response);
        $response = str_replace("[/msg]" , "" , $response);
        $r["r"] = true;
        $r["res"] = $response;
    }
    return $r;
}

宏定义:

define ("SK_ROBOT_API","http://dev.skjqr.com/api/weixin.php?email=your_email&appkey=your_appkey&msg=");

// 返回的消息以 [msg] 开头
define("SK_REG_ROBOT_RESPONSE_MSG_BEGIN","/\[msg]/"); 

getWebCont是php中通过curl方式发送请求的自定义方法:

function getWebCont($url, $data = '', $sslVerify = false) {
$ch = curl_init();
if ($sslVerify) {
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
}
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
if ($data) {
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
}
$body = curl_exec($ch);
$head = curl_getinfo($ch);
$error = curl_error($ch);
curl_close($ch);
if ($head['http_code'] == '200') {
    return $body;
} else {
    //log here 
    return false;
}
}

可以看到,使用还是比较简单的。

图灵机器人

个人比较喜欢图灵机器人,官方网址:图灵机器人 。 它返回的聊天数据中,类型比较全面,而且是友好的json格式。而小黄鸡返回的就是一个字符串。


针对它返回的数据,我们可以重新对数据进行整合。这是我写的一个方法:

/*
 * 注意:info字段需要urlencode编码
 * $postObj是微信返回的数据,我对它进行了二次封装
 */
public function response($postObj){
    $r["r"] = true;
    $response = getWebCont(TL_ROBOT_API . "userid=" . $postObj['from'] . '&info=' . urlencode($postObj['content']));
    if(!$response){
        $r['res'] = "我无法理解你的问题。抱歉。";
        return $r;
    }

    $json = json_decode($response);

    if(!is_object($json) || !property_exists($json, "code")){
        $r['res'] = "我无法理解你的问题。抱歉。";
        return $r;
    }

    //$r["r"] = true;
    switch($json->code){
        //文本类数据
        case 100000:
            $tmp = $json->text;
            break;
        //网址类数据 打开百度
        case 200000:
            $tmp = $json->text . "\n" . $json->url;
            break;
        //菜谱  红烧肉怎么做?
        case 308000:
            $tmp = $json->text . "\n\n";

            foreach($json->list as $kv){
                $t = WXResponseHelper::buildHref($kv->name,$kv->detailurl,false);
                $t .= "(" . $kv->info . ")";
                $t .= "\n\n";

                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }

        break;

        //列车信息  深圳到成都的火车
        case 305000:
            $tmp = $json->text . "\n\n";
            foreach($json->list as $kv){
                $t = $kv->trainnum . "\n";
                $t .= $kv->start . "(" . $kv->starttime . ")" . " → " . $kv->terminal . "(" . $kv->endtime . ")";
                $t .= "\n\n";

                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }
            break;
        //航班 明天成都飞深圳的飞机
        case 306000:
            $tmp = $json->text . "\n\n";
            foreach($json->list as $kv){
                $t = $kv->starttime . " - " . $kv->endtime . "  " . $kv->flight . "\n\n";
                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }
            break;
        //酒店 深圳南山区附近的酒店
        case 309000:
            $tmp = $json->text . "\n\n";
            foreach($json->list as $kv){
                $t = $kv->price . "  " . $kv->satisfaction . "  " . WXResponseHelper::buildHref($kv->name,$kv->icon) . "\n";
                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }
            break;
        //商品价格 惠人榨汁机多少钱
        case 311000:
            $tmp = $json->text . "\n\n";
            foreach($json->list as $kv){
                $t = $kv->price . "  " . WXResponseHelper::buildHref($kv->name,$kv->detailurl) . "\n\n";
                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }
            break;
        //新闻 最新新闻
        case 302000:
            $tmp = $json->text . "\n\n";
            foreach($json->list as $kv){
                $t = WXResponseHelper::buildHref($kv->article,$kv->icon) . "(" . $kv->source . ")" . "\n\n";
                if(!WXResponseHelper::maxLen($tmp, $t)){
                    $tmp .= $t;
                }else{
                    break;
                }
            }
            break;

        case 40001:
            $tmp = "key的长度错误(32位)";
            break;
        case 40002:
            $tmp = "请求内容为空";
            break;
        case 40003:
            $tmp = "key错误或帐号未激活";
            break;
        case 40004:
            $tmp = "当天请求次数已用完";
            break;
        case 40005:
            $tmp = "暂不支持该功能";
            break;
        case 40006:
            $tmp = "服务器升级中";
            break;
        case 40007:
            $tmp = "服务器数据格式异常";
            break;
        case 50000:
            $tmp = "机器人设定的“学用户说话”或者“默认回答”";
            break;
        default:
            $tmp = "我无法理解你的问题。抱歉。";
            break;
    }

    $r['res'] = $tmp;
    return $r;
}

宏定义:

//图灵机器人
define("TL_ROBOT_API","http://www.tuling123.com/openapi/api?key=your_appkey&");

其中,WXResponseHelper类是一个工具类:

class WXResponseHelper {

/**
 * 构造链接
 * @param $txt
 * @param $link
 * @param bool $blank
 * @return string
 */
public static function buildHref($txt, $link, $blank = true){
    if($link == "")
        return $txt;

    return sprintf("<a href=\"%s\" %s >%s</a>", $link, ($blank ? "target=\"_blank\"" : ""), $txt);
}

public static function maxLen($allText, $text){
    $len = strlen($text);
    $total_bytes = strlen($allText);
    $total_bytes += $len;
    return $total_bytes < WECHAT_MAX_RESPONSE_LEN ? false : true;
}

}

我们要注意,返回给微信的字符串中,最大不能超过2048字符,不然会提示公众号无法提供服务。另外,请求参数中带上userid,会使聊天具有上下文,我这里直接使用了用户的openid(长度为28)。

////回复给微信的消息长度不能超过2048字节
define("WECHAT_MAX_RESPONSE_LEN" , 2048); 

我们来看看效果吧:










还是很容易的吧!这里涉及到了一些微信公众号的后台开发,我有时间再专门写文章介绍,大家关注我的博客即可。对于如何把该聊天功整合到微信公众号,我的建议是,先走之前的逻辑,假如都没有匹配到,再把用户发来的文本丢给聊天机器人处理。

想调戏一下机器人吗?微信扫一扫下面的二维码,它还有在线记录文字和图片的功能哦,更多惊喜等待你去发现。更多介绍可以看这里。



将微信公众号变为自动聊天机器人(二)准备工作 本篇文章主要包括申请公众号、配置服务器以及微信公众号配置三部分。。 申请公众号 公众号申请链接:https://mp.weixin.qq.com/cgi-bin/loginpage?t=wxm2-login&amp;amp;amp;amp;lang=zh_CN 打开页面点击右上角立即注册即可。 申请公众号类别。个人一般申请订阅号。 配置服务器 首先需要申请一台具有公网ip的服务器,或者利用内网穿透工具来生成一... 阅读详情

相关推荐

提示工程架构师必收藏!AI提示系统市场数据洞察

在本次对AI提示系统市场的数据洞察中,我们首先了解到市场规模正呈现高速增长的态势,这得益于技术进步、行业应用拓展以及企业数字化转型等多重因素的推动。不同应用领域如内容创作、客户服务、智能营销等对提示系统有着各具特色的需求,并且在市场中占据不同的份额。市场竞争格局方面,科技巨头、初创企业和传统软件企业各凭技术实力、数据优势和市场渠道等因素角逐。而未来,多模态提示融合、个性化与自适应提示、安全与隐私保护以及与边缘计算和物联网的结合将成为重要的发展方向。

小白菜的博客 338

QQ在线客服代码

QQ在线客服代码function picsize(obj,MaxWidth){  img=new Image();  img.src=obj.src;  if (img.width>MaxWidth)  {    return MaxWidth;  }  else  {    return img.width;  }}function CloseQQ(){divStayTopleft.styl

【不轻易言弃】 1540

微信公众号聊天机器人XiaoliChat_v1.0.0

php版微信公众号聊天机器人XiaoliChat_v1.0.0。 功能: 1、聊天功能 2、笑话功能。 3、天气查询功能。 4、自定义对话功能 5、聊天可获得经验和金币,提供经验排行和金币排行功能。 6、金币赌博功能。

微信公众号接入智能聊天机器人

微信公众号接入智能聊天机器人

幻凡ss 3226

DBSCAN聚类算法——机器学习(理论+图解+python代码)

一、前言 二、DBSCAN聚类算法 三、参数选择 四、DBSCAN算法迭代可视化展示 五、常用的评估方法:轮廓系数 六、用Python实现DBSCAN聚类算法 一、前言 去年学聚类算法的R语言的时候,有层次聚类、系统聚类、K-means聚类、K中心聚类,最后呢,被DBSCAN聚类算法迷上了,为什么呢,首先它可以发现任何形状的簇,其次我认为它的理论也是比较简单易懂的。今年在python...

huacha__的博客 20万+

实用工具系列 - Xshell安装下载与使用

一、介绍 二、下载 三、安装 四、使用

Passerby_Wang的博客 1万+

手把手教你搭建公众号AI聊天机器人

扣子是字节跳动旗下的AI聊天机器人构建平台,提供快速创建、调试和优化AI聊天机器人的应用程序。

wbsu2004的博客 7518

lenovo联想拯救者Legion Y9000P 2022款2023款2024款笔记本电脑(82RF,82WK,82WQ,83DE,83DF)原装出厂Windows11预装OEM系统镜像下载

联想原装出厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软件、联想电脑管家、联想浏览器、联想软件商店、legionzone控制中心等预装程序。链接:https://pan.baidu.com/s/1YBji_oh7xOkq-NxnS8Mm8g?链接:https://pan.baidu.com/s/1S7_enXmuoja1a9ASvUT5Fg?拯救者Legion Y9000P IRX9H 2024款【83DE】原厂Win11系统包。

QQ17855069的博客 6528

微信公众号上部署自己训练的聊天机器人(腾讯云服务器+TensorFlow2.1+Django3.1)

本篇博客主要介绍一下Seq2Seq模型,以及模型训练后的部署,使用的深度学习框架为TensorFlow2.1,GPU为Tesla P100(白嫖Kaggle的),由于网站有时间限制,只训练了两个epoch就先部署了哈,所以机器人目前还很沙雕。

夏小悠的博客 4325

别再乱调栅极电阻了!手把手教你用示波器调试FOC驱动MOS管,避开EMC和震荡坑

本文详细介绍了FOC驱动中MOS管栅极参数的精准调试方法,涵盖示波器配置、波形特征分析及栅极电阻选型策略。通过实战案例和工程经验,帮助工程师有效解决EMC和震荡问题,提升驱动电路稳定性和效率。

weixin_28728495的博客 502

浏览器缓存导致代码不更新?一招解决部署后用户仍看到旧页面的问题

方案效果适用场景文件名哈希永久解决前端工程化项目HTTP缓存头控制精准控制需服务器权限Meta标签部分生效临时补救方案最佳实践:入口HTML禁用缓存,静态资源使用哈希文件名 + 长期缓存,达到「秒级更新」+「高性能」的平衡!

江拥羡橙的博客 810

最新 2023 如何使用 wechaty 框架开发微信机器人详细教程(基础篇)

近年来,随着人工智能技术的快速发展,聊天机器人在各个领域得到了广泛的应用。在社交媒体中,自动回复成为了一个流行的功能,让用户可以方便地与机器人进行互动。Wechaty,一个开源的微信聊天机器人框架,实现微信自动回复功能。Wechaty 是什么?微信个人号功能非常强大和灵活,是一个非常适合用来做ChatBot的载体。它可以灵活不受限制的发送语音短信、视频、图片和文字,支持多人群聊。但是使用微信个人微信号作为ChatBot,需要通过非官方的第三方库接入微信。

唤醒手腕 3万+

2024年09月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析

小杨购物 【题目描述】 小杨有n元钱用于购物。商品A的单价是a元,商品B的单价是b元。 小杨想购买相同数量的商品A和商品B。 默认小猫角色和白色背景,编写程序请你帮小杨计算出他最多能够购买多少个商品A和商品B。 【输入描述】 新建变量“n”用于存储小杨购物的金额。 新建变量“a”用于存储商品A的价格。 新建变量“b”用于存储商品B的价格。 1≤n,a,b≤100000 如下图所示: 图片 【输出描述】 新建变量“result”用于存储小杨最多购买商品A和商品B的个数。 如下图所示:

人生就是一个不断学习的过程 497

1分钟快速将智能聊天机器人接入国产ChatGLM开源模型

“了解如何在短短1分钟内,让智能聊天机器人与国产ChatGLM开源模型无缝连接,为你的应用增添智能交流能力!”01—昨天发布ChatGPT微信助手体验群后,见《ChatGPT 微信助手上线!问答更便捷,功能持续升级中。》,有不少朋友进群体验。‍‍‍‍‍‍‍‍朋友们问了很多有意思的问题,也有请助手帮忙处理工作上的事,甚至还有数学题,简直是要累死ChatGPT机器人的节奏。‍‍‍‍‍‍‍‍‍“有一列...

1166

基于Python的海关进出口数据爬取与贸易关系分析

本文介绍了如何使用Python爬虫技术获取海关进出口数据,并基于这些数据进行贸易关系分析。文章详细阐述了数据采集、清洗、存储和分析的全过程,使用了最新的爬虫技术和数据分析方法,为国际贸易研究提供数据支持和技术参考。关键词:Python爬虫、海关数据、贸易分析、数据可视化、Selenium、Scrapy。

2201_76125261的博客 544

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Openaibot框架:模块化设计打造可定制AI聊天机器人

大语言模型(LLM)通过API接口为开发者提供了强大的自然语言处理能力,其核心原理是基于海量数据训练的深度学习模型,能够理解和生成类人文本。这一技术价值在于大幅降低了构建智能对话系统的门槛,使得开发者可以专注于业务逻辑而非底层算法。在实际应用场景中,开发者常需将LLM能力集成到聊天机器人中,实现客服、问答、任务执行等功能。Openaibot框架正是为此而生,它采用模块化与松耦合的架构设计,将模型调用、上下文管理、插件扩展等复杂逻辑封装为清晰层次。该框架支持滑动窗口记忆、总结性记忆等灵活的上下文管理策略,并允

weixin_42519772的博客 354

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

如何利用工作流自定义一个AI智能体

今天再来介绍一个平台扣子,扣子是字节跳动开发的一站式AI开发平台,为用户提供便捷、高效的工具,帮助他们快速创建、调试和优化AI聊天机器人。无论用户是否具备编程背景,都能通过扣子平台轻松构建各种基于AI模型的问答机器人。

linkedin_21843693的博客 3072

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

解锁Dify插件扩展,开启AI应用新世界

在技术发展趋势方面,插件的功能将更加智能化和自动化 。随着人工智能技术的不断演进,插件将能够更好地理解用户的意图,自动完成更加复杂的任务 。例如,在内容创作领域,插件可能会根据用户输入的主题和风格要求,自动生成完整的文章、图片甚至视频内容;在数据分析领域,插件能够自动识别数据中的模式和趋势,并提供深入的洞察和预测 。同时,插件的性能也将得到进一步提升,运行速度更快,响应更及时,能够处理更大规模的数据和更复杂的任务 。

大雨淅淅的博客 1267

Coze:零代码打造AI智能体的未来工厂

在人工智能技术迅猛发展的今天,Coze平台以其革命性的零代码开发理念,正在改变我们创建和部署AI应用的方式。

weixin_52612796的博客 1193

Azure School,让你系统化快速学习人工智能

要说目前最热门的技术,非人工智能莫属了,让计算机程序能够看懂、听懂、读懂、理解我们的世界!想想就激动!!   上至高大上的个人数字化助理,下至P图软件,各种应用都开始增加AI相关的功能,试问又有哪个技术爱好者能不动心呢?   没错,我们需要不停地学习新东西。那么接下来就有另外一个问题……   假设一天早上,老板交代给你一个任务,要在公司近期举办的活动当中采用智能刷脸或者语音录入的方式让宾客自助签...

weixin_33901641的博客 106

15个AI赚钱方法:从效率提升到方案构建的实战指南

人工智能(AI)作为一项通用目的技术,其核心价值在于通过自动化与智能化处理,显著提升信息处理与内容生成的效率。其技术原理基于机器学习与深度学习模型,能够理解和生成自然语言、图像乃至视频。在工程实践中,AI的价值体现在将重复性、低创造性工作自动化,从而释放人力专注于更高价值的决策与创新。这催生了广泛的应用场景,从内容创作、数据分析到智能客服和个性化推荐。本文聚焦于如何将AI能力转化为可持续的商业模式,深入解析了包括**AI辅助自媒体运营**和**开发垂直领域聊天机器人**在内的多种路径,旨在帮助个人与小团队利

weixin_30855761的博客 308

如何让你的公众号拥有聊天机器人?

现在,每个人都可以拥有一个专属的公众号聊天助手。只需几个简单步骤,就能将你的公众号变成一个智能助手,无论是聊天八卦、撰写文案还是搜索热点,都能轻松应对。即使没有编程背景,普通人也能轻松搭建自己的AI机器人助手。使用Coze,一切变得简单。接下来,将你的公众号接入Coze,中文名为“扣子”:https://www.coze.cn/登录后,你将看到Coze的首页。在这里,你可以探索Coze的各种功能。首先,访问Coze的官方网站并登录。首先,你需要有一个公众号。最后一步配置公众号AppID,大功告成!

AI心易行者 626

微信公众号机器人详细教程

文章目录一.申请机器人二.接入机器人 一.申请机器人 微信对话开放平台: https://openai.weixin.qq.com/ 依次如下: 扫码: 填写信息: 技能: 发布: 机器人信息编辑: 绑定应用: 然后又是微信扫码,点击授权即可。 再申请接口: 填写信息; 然后返回:(返回的id,token,key要用) 再发布: 发布成功: 记住每一次技能以及机器人信息改变后,需要重新发布机器人才能有效果。 二.接入机器人 ...

全栈川川 8997

如何在微信公众号中添加聊天机器人——我的阿尔法狗1.0领养与使用指南

最近开了一个公众号弄着玩,之前也在一些群里看到过一些聊天机器人,所以就想将聊天机器人接入微信公众号。 现在网上已经有比较成熟的一些产品,有的免费,有的收费,都可以直接接入微信公众号,实现一些基本的聊天和实用功能,也可以定制一些个性化的聊天对答。 这里推荐一篇文章,总结得还是比较详细:聊天机器人API搜集汇总 除了这里面提到的聊天机器人,我还试过谛听机器人:谛听机器人官方网站 最后,看到微信对话开放...

思我所 3844

微信公众号添加聊天机器人

为微信公众号添加后台自动聊天机器人。 要求:有微信公众号 操作:1、进入图灵机器人官网,进行注册。 2、创建机器人 3、添加到相关公众号 4、为机器人进行拓展能力训练 ...

zhanglu_1024的博客 5140
上一篇: 注册信息验证时的用户体验提升
下一篇: 微信公众号用户与网站用户的绑定方案
hellojammy
博客等级 码龄12年 1粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值