开发一款软件产品或一款应用,按照以往的经验,就是要做一个 App,或者一个网站、一个服务。但随着云服务、低代码平台的出现,产品的业态也发生着变化。比如最近大热的 AIGC 公司 Midjourney,进入官网,没有 App 需要下载,也没有传统的网页服务。
点击登录,弹出来的居然是 Discord 的用户授权界面。也就是说,一般公司特别在意的用户数据,它也没维护,直接就用第三方账号系统。
再看下面的介绍,整个公司只有11名全职工作人员,要知道这家公司的年营收可是2亿美元,真的是一家神奇的公司,其产品服务居然只在别家的平台 Discord 提供。
都说70后非常幸运,赶上了互联网和移动互联网两波浪潮。但是,身处浪潮之中,能否感受到浪潮,或者乘风破浪又是一回事。互联网刚出现时,简陋的网页,老爷车般的网速,谁会预想到互联网会深刻的改变我们的生活呢?手机刚出现时,人们最多想到的是替代电话,谁曾想现在人们会一刻也离不开手机。这哪里是替代电话,替代的是一种生活方式。即使认识到互联网和移动互联网的前景,但处在当时的环境下,能想到有什么切入点吗?
从 AlphaGo 大战李世石引起人们对人工智能的关注,很快就过去了 7 年时间。这期间有些人坚信人工智能就是新一代技术浪潮,但更多的人看到的是 Siri 的人工智障、自动驾驶的不着调、花式调侃 ChatGPT,丝毫没有意识到人工智能的前景。我想,二十多年前,人们面对初代互联网,听着56K MODEM吱吱叫,龟速上网时,也是这么想的吧。
即使认识到人工智能的前景,也不见得就能看到希望。比如百度 ALL in AI之后,市值已经从原来的 BAT梯队掉队。曾经的独角兽商汤科技,如今步履维艰。连巨头都是如此,普通人就更难了。
机会当然有,但能抓住机会的绝对凤毛麟角。所以面对别人的成功,不要轻飘飘的来一句,只不过是碰上了好机遇。机遇来了,能接住,也是一种实力。
不过大家也不要焦虑,着急上 AI 这趟车,因为第一波从 AI 淘到真金白银的就是那些教你使用 AI 的人。
虽然看不清 AI 的发展和切入点,我也一直保持一定的关注。今天就介绍我的第一款 AI 应用,当然不是那种传统意义上的软件应用,实用价值也有限。
当前,出现了各种低代码平台。所谓的不用学习写代码,就可以完成编程工作。AI 领域也是如此,比如 Open AI 就推出了 Chat GPTs,允许用户通过结合提示词、外部知识和特定功能,打造个性化的ChatGPT版本。
简单来说:
GPTs 应用 = ChatGPT + Prompt 提示词工程 + 自定义语料库 + 自定义接口
这种应用开发模式,不需要编写程序,不需要懂什么大数据、大模型,只需要关注自己擅长的领域,可以说也是颠覆了之前我们对于应用开发的观念。
国内公司也开始发力,比如字节跳动,就推出了类似的平台:
https://coze.com
出于某些政策的原因,这样服务并没有对国内用户开放,如果要使用,请自备梯子。
访问网站后,可以选择使用 Google 账号登录,进入之后界面如下:
简单来说,Coze 就是创建聊天机器人(Bot)的平台。这里聊天,并不是无意义的闲聊,就像 Chat GPT 那种模式,可以通过对话的形式来从 AI 那里获得答案。
如果我们选择创建一个 Bot,首先需要为其设定一个角色,关于角色的描述,界面上给了一个示范。
我的目标是打造一个编程助手。根据示例,并结合我希望定义的程序员角色,再经过 AI 优化,得到了如下提示描述:
英文水平不行没有关系,我们可以借助谷歌翻译,尽量还是给英文的提示词。
接下来就是选择插件,这里的插件差不多就是一项服务,比如 Google 搜索,DALLE 3 是用于文生图,等等。根据我的需求,有些技术问题还需要借助Google 搜索,把该插件添加即可。
接下来还可以选择知识库,还有一些选项不太明白有什么作用,先不管吧。
创建了 Bot 后,在预览区域就可以向 Bot 发起回话,就像使用 Chat GTP 一样。下面是一个示范。
在linux下,如何开发一个蓝牙通信应用?
在Linux下开发蓝牙通信应用,您可以考虑使用BlueZ库。BlueZ是官方Linux蓝牙协议栈,它提供了许多用来跟蓝牙设备通讯的APIs。
以下是一个简单的使用Python的BlueZ库进行蓝牙通信的示例:
import bluetooth
# 搜索附近的蓝牙设备
nearby_devices = bluetooth.discover_devices(lookup_names=True)
print("找到了 %d 个设备." % len(nearby_devices))
# 输出设备名称和地址
for addr, name in nearby_devices:
print("%s - %s" % (addr, name))
# 创建一个套接字(Bluetooth使用的RFComm协议)
sock=bluetooth.BluetoothSocket(bluetooth.RFCOMM)
bd_addr = "01:23:45:67:89:ab" # 蓝牙设备的地址
port = 1
sock.connect((bd_addr, port))
# 发送数据
sock.send("Hello, Bluetooth!")
sock.close()
这段代码首先搜索附近的蓝牙设备,然后选择其中一个进行连接和通信。
注意,您需要确认已经在Linux上安装了pybluez库,如果尚未安装,您可以使用如下命令安装:
sudo apt-get install python-bluetooth
希望这个示例能够对您有所帮助,如果您需要更详细的信息,或者对其他的蓝牙开发主题有疑问,请随时向我提问。
抱歉,我希望使用C++语言开发,最好是QT
如果您打算在Linux下使用C++以及QT框架开发蓝牙通信应用,那么Qt Bluetooth模块将会是您的首选。
首先确保已安装蓝牙开发的库,然后在Qt工程文件 (.pro) 中添加蓝牙模块:
QT += bluetooth
下面是一个使用Qt Bluetooth模块搜索附近蓝牙设备的简单例子:
#include
#include
QBluetoothDeviceDiscoveryAgent *agent = new QBluetoothDeviceDiscoveryAgent(this);
connect(agent, &QBluetoothDeviceDiscoveryAgent::deviceDiscovered, this, [=](const QBluetoothDeviceInfo &info){
qDebug() << "Found new device:" << info.name() << '(' << info.address().toString() << ')';
});
agent->start();
以上代码会搜索附近的蓝牙设备,并打印出设备名称和MAC地址。你可以使用QBluetoothSocket
进行连接和通信。
这是一个建立连接的简单示例:
#include
QBluetoothSocket *socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);
connect(socket, &QBluetoothSocket::connected, this, [](){
qDebug() << "Connected!";
});
connect(socket, QOverload::of(&QBluetoothSocket::error),
this, [=](QBluetoothSocket::SocketError error){
qDebug() << "Cannot connect to the device:" << error;
});
// 用设备的MAC地址创建QBluetoothAddress对象,然后连接到设备
QBluetoothAddress address("01:23:45:67:89:ab");
socket->connectToService(address, QBluetoothUuid(QBluetoothUuid::SerialPort), QIODevice::ReadWrite);
以上代码创建了一个用于通信的socket,然后连接到指定的蓝牙设备。
上述代码仅供参考,在实际项目中您可能需要按照您的具体需求进行修改。
预览完之后,就可以发布到 Discord、Telegram等 IM 平台。但这里没有我们熟悉的微信、QQ、飞书等。吐槽一下 Discord 真的不好用,速度也慢,不知道为啥在国外那么受欢迎。
在Discord上发布后,效果是这样的:
Telegram上效果也差不多:
如何挖掘这个聊天机器人的潜力,如何提供一些个性化的服务,则是下一步需要研究的课题。目前还没看出字节跳动推出的这个开发平台有啥作用,一个 Bot 能玩出什么花样。新的产品形态,一下子没法弄明白,就像当年,软件免费能赚钱,大家也觉得不可能。
如同学习软件开发,如果只是看书、看代码,永远学不会编程。AI 也是如此,只是看看热闹,也没有什么作用,还是得下场实践。也许做了一个应用后,才能明白Midjourney 这种产品形态。