函数调用是大模型技术中最有趣的事,不止利用大模型的智力,同时还通过程序实现控制其他设备的能力。上面这个例子演示了通过大模型控制网页中一扇门的开关。
当然,能开门就能开风扇、能开灯,只要说话或者打字就能够控制各种设备,听上去就很未来。但AI带来的不止是言出法随,更是一种智能劳动力。
大模型的本质是一种智力,利用这种智力,能够让AI来决策,从而控制其他东西,典型的就是把AI加入到机器人之中,就好像赋予机器人灵魂。原理是一样的,通过各种传感器收集外界数据输入进大模型,最后大模型响应输出调用程序方法,机器身体开始运动。
前端网页是一个自带开关动画的三维模型,使用threejs框架实现三维渲染,网页和websocket服务器双向连接。
python程序是我们和大模型交流的对话接口,通过访问大模型的接口实现和大模型交互。同时python程序也发起了一个与websocket服务器的连接。
响应匹配如果匹配到大模型生成以"websocket_send:"开头的响应,那么就会调用发送指令,把大模型生成"open"或者"close"发送给websocket服务器。
websocket服务器是可以说是python和网页连接的桥梁,开关门的指令通过websocket服务器转发,指令是字符串"open"或者"close",对应着开门关门。
前端网页收到开或者关的指令,执行响应动作,这是我们看到的结果。
需要安装nodejs环境、python环境、下载安装非常简单,请自行安装。
Node.js是一个免费、开源、跨平台的 JavaScript 运行时环境,它让开发人员能够创建服务器、Web 应用、命令行工具和脚本。源码文件里有个server.js文件,通过 命令行 运行命令 node server.js 就能把 websocket 服务器运行起来。
Python是一种广泛使用的高级编程语言,以其简洁易读的语法和强大的功能而著称。它被广泛用于网站开发、数据分析、人工智能等多个领域。Python的语法设计强调代码的可读性和简洁性,这使得Python程序易于编写和维护。
还需要大语言模型LLM,本项目使用的本地的大模型 llama3.1:8b,可以查看本系列文章《构建一个属于自己的私人AI》
代码共有一个html文件夹,这里有网页文件,三维模型文件。
html文件夹里有一个server文件夹,这里面有websocket服务器代码server.js。