基于TCP交互的安卓chatGLM客户端
基本原理
随着chatGPT的火爆发展,如何将其快速实现部署和访问成为了急需解决的问题,为此,开发了一个基于TCP交互的安卓chatGLM客户端系统。
其中 后端在开源的 chatGLM-6B 的基础上,使用socket编程实现了一个简单的服务器。
前端使用安卓开发UI,发送请求给后端请求chatGLM的回答,其中每个客户端都会保存一份
历史(会话信息),以便可以多个用户同时使用chatGLM互不干扰。
自定义协议格式
其中,自定义了TCP上层的应用层协议,其中头有21字节,如下图所示
对于封包和解包的方法进行包装,使其可以对固定的21字节返回格式化后的内容,为了解决粘包问题,
采用了协议头中带长度的做法,收到固定头长后解析出长度,既可以知道完整的包大小。
使用方法
- 将RD/mydemoServer py 文件放入 chatGLM-6B 根目录,然后运行他。
- 将本安卓项目打开,修改MainActivity的服务器路径,程序打包,安装运行。
效果截图
结语
本项目虽然界面较为简单,但是却综合应用了多种知识,例如:AI绘画、AI聊天、TCP/IP通信、自定义协议、安卓多线程开发等
同名项目已经在gitee.com上面开源