怎么利用Termux搭建一个ChatBot聊天服务

描述

Termux是一个Android终端仿真器和Linux环境应用程序,直接工作,无需根目录或设置。一个最小的基本系统被自动安装-额外的软件包可以使用APT软件包管理器来使用。不需要root,运行于内部存储(不在SD卡上)。

安装包,最好使用GooglePlay版本的,如果你无法下载GooglePlay版本的app,那你可以从F-Droid里面下载,(微信搜:anzhuojiaoben,关注我) 两者是一样的.F-Droid里面应该是不需要翻墙的. 或者下载我的这个包, 不过我忘记了,是不是我加工过的版本Android,可能修改了某些东西,如果介意,还是下载官方的, 总之不推荐从酷安下载的版本.

**Termux下载: **

百度网盘: https://pan.baidu.com/s/1nHGqIs29gJQOipOiQN7I2Q?pwd=1si5

我的网盘: https://pan.iqqclub.com:8001/d/c5ec7d40b7d04044962a/

密码: rBNHx6

Python程序包下载:

百度网盘: https://pan.baidu.com/s/1njcp-tiszzlSrIR-jIn6XA?pwd=8biu

我的网盘: https://pan.iqqclub.com:8001/f/d1a53fe8078244579728/

密码:Q7jnX8

接下来是安装过程了:

新装的用户需要先进行更新操作

//换源, 换成国内的源,执行命令后会出现UI,UI展示在下方的图片上
// (微信搜:anzhuojiaoben,关注我)
termux-change-repo


//更新apt和升级现有软件包(微信搜:anzhuojiaoben,关注我)
apt update && apt upgrade
// 注意在执行upgrade时,过程中会卡住,提示你输入,统一输入 y 然后按回车即可


// 申请存储使用权限,这个务必执行,如果你想在termux或者linux系统中
//使用手机的sdcard目录的话(微信搜:anzhuojiaoben,关注我)
termux-setup-storage


// 安装linux系统,这里使用debian
apt install proot proot-distro
proot-distro install debian


// 登录debian系统 这条命令在你安装完成debian后有提示
proot-distro login debian

Android

Android

为了方便输入操作,(微信搜:anzhuojiaoben,关注我)建议另外安装openssh( 如果你没有电脑,请忽略,直接跳转到, 进入debian操作的部分 )

//安装过程中会提示输入Y, 并回车, 或者直接加上 -y 参数
apt install openssh


//然后使用passwd命令去修改termux的用户密码
passwd


//执行passwd命令时,如果有报错,可能是因为 termux-auth没有安装
//手动安装一下在试
apt install termux-auth


//查看termux的系统用户名
whoami


//都设置完成后,需要启动sshd服务
sshd

Android

如上图所示,我的用户名为u0_a258, 然后设置了一个密码,那么在PC上连接手机(手机电脑需要在同一个局域网内),那在电脑上连接的命令为

ssh u0_a258@192.168.123.85 -p8022


回车后,会提示你输入刚才设置的密码.8022是termux开放的ssh连接端口,
因为没有root权限, 所以22端口无法被使用, 同理80 443等端口在termux没有
root权限的情况下,也没法直接使用.(微信搜:anzhuojiaoben,关注我)


windows电脑win10之上的系统, 可以在powershell中使用ssh命令

Android

Android

下面进入debian去操作:

在debian系统中,使用的环境为 arm64, 而非aarch64,这也是为什么会在debian中去安装, 而不是直接在termux中安装,倘若在termux中安装的话, 目前python版本为3.11.1并且没有低版本提供安装, 源码编译安装还会遇到各种错误,需要一路过关斩将的去处理,非常复杂.

//关于debian更换国内源的方法, 这里就不提供了, 百度一下
//一堆一堆的教程.


//在debian中,同样需要先更新
apt update && apt upgrade
//然后安装必要的依赖包
apt install -y wget build-essential libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev libffi-dev zlib1g-dev vim


//下载python3.10的源码包
wget https://www.python.org/ftp/python/3.10.0/Python-3.10.0.tgz
(微信搜:anzhuojiaoben,关注我)
//解压程序包
tar xzf Python-3.10.0.tgz
cd Python-3.10.0


//开始编译安装python
mkdir /usr/local/python3.10
./configure --prefix=/usr/local/python3.10 --enable-optimization
//设置编译配置,需要一段时间, 请耐心等待.


//完成后,开始编译安装, 注意安装时间较长,注意保持手机不要锁屏
make && make install


//编译安装完成后,验证python版本
python3 --version

至此python3.10安装完成, 下面是配置一下python的程序,并启动服务了,程序很简单, 就一个文件,但是需要安装一堆的依赖

注意:

如果你输入 python --version提示没有python命令,请查看/usr/local/python3.10/ 内是否有文件,python和pip命令在 bin目录下.

Android

你可以直接使用绝对路径来测试, 或者添加环境变量

/usr/local/python3.10/bin/python3 --version

Android

//添加永久环境变量
echo 'export PATH=$PATH:/usr/local/python3.10/bin' >> /etc/profile


//执行完上面的命令后, 检查一下文件, 是否和下图一致.
cat /etc/profile
(微信搜:anzhuojiaoben,关注我)
//如果和下图一致,则执行一下下面的命令
source /etc/profile

Android

然后再在终端中输入python3 --version,就不会出问题了

Android

将上面下载的python程序包,放置到手机的/sdcard下并解压,(路径无绝对,你也可以放在/sdcard下的其他文件夹中.) 在debian系统中可以直接进入/sdcard文件夹访问安卓(微信搜:anzhuojiaoben,关注我)手机的文件.如果你没有, 那你一定是忘记在 termux中申请使用存储权限的指令,需要回到termux中,重新申请一下, 再回到debian中,就有了.

或者使用命令直接下载(如果链接没有失效的话):

wget https://pan.iqqclub.com:8001/seafhttp/files/91728b2f-4ec9-4e85-a4c8-b807db4bae49/ChatBot.zip

chatBot.zip 下面有三个文件

config.json 文件中是openAI的配置选项, 这里你主要设置一下api-key

chatbot.py 是主程序,除文件最后一行的端口号,可以修改外, 其他地方如果你不明白是什么意思, 请不要修改.

package.txt 是所有的依赖包,通过pip去安装的

Android

OpenAI的api-key需要你自己去openAI的官方注册账号,并申请一个api-key, 官方地址: https://beta.openai.com/login/

Android

配置好你的api-key后, 开始安装服务端.

//先进入到程序所在目录
cd chatbot
//首先安装依赖包
pip3 install -r package.txt
//安装过程所用时间,根据你使用源的速度来定.安装完成后执行


//启动服务端
python3 chatbot.py
//执行后,会再次下载部分文件,如果出现下图的提示,则为启动成功了

Android

因为我没有使用wifi,服务端启动的时候, 直接用的是我移动网络的公网IP.如果你是wifi的话, 会提示你局域网的IP地址+端口号,(微信搜:anzhuojiaoben,关注我) 你使用电脑或者手机就可以直接访问了, 下面我们用本机的Autojs来写一段代码,测试一下这个服务是否可以跑起来.

测试代码:

let url = "http://127.0.0.1:5555/chat";
let data = {
    msg : "哈哈,今天也是元气满满的一天呢,是不是?",
    uuid : "1234567890-abcd-efgh-ijkl-1234567890",
}


http.postJson( url, data, {}, function( res, err ) {
    if ( err ) {
        toastLog( err );
        return;
    }
    let result = res.body.json();
    let msg = result.data.msg;
    console.log( msg );
} );

测试结果:

Android

Android

接口跑起来了, 测试没问题, 那么就可以进行下一步了, 写一个对话应用吧

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分