# ailinker
**Repository Path**: snail0815/ailinker
## Basic Information
- **Project Name**: ailinker
- **Description**: AI-LINKER 大模型后台服务系统
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-08-30
- **Last Updated**: 2024-08-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AiLinker
## 简介
### 1.1 系统特点
* 该后台系统基于python3.8开发,大模型以及后端语音服务对接解耦设计。
* 节点间通信基于rabbitmq通信框架.
* 该系统通过websockets和硬件对接,实现AI聊天机器人、AI硬件控制终端等应用。
* 该系统旨在帮助初学者学习在线大模型服务、各语音服务api调用流程,以及和硬件对接流程。
### 1.2 目录架构
* common # 通用包目录
* config #应用配置文件
* scripts #相关测试脚本目录
* deploy #应用部署和后台运行文件目录
* README.md
## 2.软件安装
### 2.1系统软件安装
软件运行在Linux系统,我们的测试系统环境为ubuntu22.04,建议初学者使用相同版本,
其它Linux发行版也可参考本文档安装相关依赖。
#### 安装rabbitmq server
```
$ sudo apt install rabbitmq-server
```
配置rabbitmq服务:
```
$ sudo rabbitmqctl add_user user 123456
$ sudo rabbitmqctl set_permissions -p / user ".*" ".*" ".*"
$ sudo rabbitmqctl set_user_tags user administrator
```
#### 安装依赖软件
```
$ sudo apt install libopus-dev
$ sudo apt install ffmpeg
```
### 2.2 安装AILINKER
#### 1安装python虚拟环境管理工具,建议使用miniconda或者conda
* [miniconda安装参考1(中文)](https://www.cnblogs.com/jijunhao/p/17235904.html)
* [conda安装参考2](https://conda.io/projects/conda/en/latest/user-guide/install/index.html)
#### 2安装Ailinker后端服务
首先确保conda虚拟环境管理工具已经正确安装
```
$ git clone https://gitee.com/yumoutech/ailinker.git
$ cd ailinker
$ ./install.sh
```
## 3.运行
### 3.1运行服务前的准备工作
由于大模型接口,语音识别接口,语音合成接口都是用的在线服务接口,这里需要大家先去各家官网申请API KEY(具体申请方法查看docs目录下的文档),
并将获取到的相关信息,写入 env_setup.bash 文件方可正常运行。env_setup.bash 文件可以从docs目录下复制一份出来,运行以下命令。
```
# 确认当前在 ailinker 目录下
$ cp docs/example_env_setup.bash env_setup.sh
```
系统默认使用的是 openai-hk 的大模型接口,和火山引擎的语音服务,建议大家先申请这两个进行测试。具体申请办法,查看docs目录下的介绍文档。
### 3.1运行rabbitmq服务
理论上安装完rabbitmq服务,系统会自动启动,这里我们看一下状态,确保rabbitmq服务器已经启动
```
$ sudo service rabbitmq-server status
```
输入如下,看到(running)即可
```
[sudo] password for deakin:
● rabbitmq-server.service - RabbitMQ Messaging Server
Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2024-08-29 13:34:59 CST; 7h ago
Main PID: 835 (beam.smp)
Tasks: 27 (limit: 7084)
Memory: 142.1M
CPU: 35min 44.735s
CGroup: /system.slice/rabbitmq-server.service
├─ 835 /usr/lib/erlang/erts-12.2.1/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 12800>
├─ 943 erl_child_setup 65536
├─1706 inet_gethost 4
└─1707 inet_gethost 4
8月 29 13:34:56 ubuntu22-VirtualBox systemd[1]: Starting RabbitMQ Messaging Server...
8月 29 13:34:59 ubuntu22-VirtualBox systemd[1]: Started RabbitMQ Messaging Server.
```
若服务未启动,运行以下命令启动即可
```
$ sudo service rabbitmq-server start
```
### 3.3在前台运行ailinker服务
```
$ conda activate ailinker
$ source env_setup.bash
$ python app.py
```
此时如果已经配置好板子的IP和端口信息,重启板子就会看到板子自动连接到服务,连接成功后,板子LED为紫灯闪烁
### 3.4后台运行ailinker服务
前期测试的时候,可以在前端启动,测试没问题后,可以进入deploy目录运行启动脚本在后台启动服务。具体操作如下
```
$ cd deploy
$ ./run_app.sh # 运行后回车结束即可
```
查看后端运行是否正常
后台运行后可以打开该目录下的log文件,查看输出是否正常。
```
$ cat app.log
```
输出如下即可:
```
2024-08-29 20:43:20,095-app-INFO: main app start...
* Serving Flask app 'app'
* Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on all addresses (0.0.0.0)
* Running on http://127.0.0.1:8090
* Running on http://192.168.3.105:8090
Press CTRL+C to quit
```
## 4.版本更新
### v0.3.01
* 更新了asr单次请求数据大小