茴香豆实战

一、租用GPU服务器(我这边选择便宜一些的Autodl)

  Autodl:https://www.autodl.com/

  智星云:https://gpu.ai-galaxy.cn/

二、登录服务器,下载模型

1、处理vim时出现的中文乱码问题

vim /etc/vim/vimrc
#在文件末尾添加如下内容,处理vim时出现的中文乱码问题
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

2、查看python的env情况

conda env list

3、更新工具包

apt-get update
apt install net-tools

4、创建一个python3.8.5的环境,名称设置为huixiangdou,再创建一个modelscope环境

(1)创建

conda create -n huixiangdou python=3.8.5
conda create -n modelscope python=3.8.5

(2)激活

source activate modelscope

(3)在此环境中安装modelscope依赖包

pip install modelscope

5、下载千问7B模型

(1)参考地址

  https://huggingface.co/internlm/internlm2-chat-7b/tree/main

  https://github.com/QwenLM/Qwen

(2)创建目录,创建之前先查看数据盘挂载在哪,我们在数据盘上进行操作

source ~/.bashrc && source activate modelscope

cd /root/autodl-tmp/ && mkdir -p model/qwen_7B

(3)下载源码

cd /root/autodl-tmp/model/qwen_7B && git clone https://github.com/QwenLM/Qwen.git

(4)安装依赖

cd Qwen && pip install -r requirements.txt

(5)下载模型

mkdir -p /root/autodl-tmp/model/qwen_7B/Qwen/modelPath && cd /root/autodl-tmp/model/qwen_7B/Qwen/modelPath
vim qwen_7B_chat_download.py
from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('Qwen/Qwen-7B-Chat', cache_dir='/root/autodl-tmp/model/qwen_7B/Qwen/modelPath/', revision='v1.1.9')
chmod +x qwen_7B_chat_download.py
python qwen_7B_chat_download.py

6、运行cli_demo.py

 (1)修改cli_demo.py中的模型路径为你自己的模型路径。

vim /root/autodl-tmp/model/qwen_7B/Qwen/cli_demo.py
DEFAULT_CKPT_PATH = '/root/autodl-tmp/model/qwen_7B/Qwen/modelPath/Qwen/Qwen-7B-Chat'
cd /root/autodl-tmp/model/qwen_7B/Qwen/ && python cli_demo.py

三、茴香豆

0、参考地址

  https://github.com/InternLM/HuixiangDou/blob/main/README_zh.md

1、创建目录并激活huixiangdou的python环境

mkdir -p /root/autodl-tmp/huixiangdou && cd /root/autodl-tmp/huixiangdou && source activate huixiangdou

2、下载代码及依赖

# 下载 repo
git clone https://github.com/internlm/huixiangdou --depth=1 && cd huixiangdou

# 下载聊天话题
mkdir repodir
git clone https://github.com/open-mmlab/mmpose --depth=1 repodir/mmpose
git clone https://github.com/tpoisonooo/huixiangdou-testdata --depth=1 repodir/testdata

# 安装解析 word 文档所需依赖
apt update
apt install python-dev libxml2-dev libxslt1-dev antiword unrtf poppler-utils pstotext tesseract-ocr flac ffmpeg lame libmad0 libsox-fmt-mp3 sox libjpeg-dev swig libpulse-dev
# 安装 python 依赖
pip install -r requirements.txt

3、下载embedding模型

(1)创建文件夹

mkdir -p /root/autodl-tmp/model/bce-embedding-base_v1
mkdir -p /root/autodl-tmp/model/bce-reranker-base_v1

(2)由于bce模型需要验证,并且需要梯子访问huggingface,我这边手动将文件下载下来上传到服务器上

  百度网盘下载地址:https://pan.baidu.com/s/1pDgKoR_UQNH53oVz9ZVZVQ  提取码:kn3c

(3)修改配置文件中bce模型的路径

vim /root/autodl-tmp/huixiangdou/huixiangdou/config.ini
[feature_store]
embedding_model_path = "/root/autodl-tmp/model/bce-embedding-base_v1"
reranker_model_path = "/root/autodl-tmp/model/bce-reranker-base_v1"

4、把 repodir 的特征保存到 workdir

cd /root/autodl-tmp/huixiangdou/huixiangdou && mkdir workdir
python3 -m huixiangdou.service.feature_store

5、获取Serper搜索的API Key并修改配置文件

  Serper官网地址:https://serper.dev/api-key

vim /root/autodl-tmp/huixiangdou/huixiangdou/config.ini
[web_search]
# check https://serper.dev/api-key to get a free API key
x_api_key = "你的API Key"

 6、修改LLM模型路径(你自己下载的模型在哪个目录你就填哪个目录)

vim /root/autodl-tmp/huixiangdou/huixiangdou/config.ini
[llm]
enable_local = 1
enable_remote = 0
client_url = "http://127.0.0.1:8888/inference"

[llm.server]
local_llm_path = "/root/autodl-tmp/model/qwen_7B/Qwen/modelPath/Qwen/Qwen-7B-Chat"
local_llm_max_text_length = 3000
local_llm_bind_port
= 8888

6、运行基础版技术助手

cd /root/autodl-tmp/huixiangdou/huixiangdou && python3 -m huixiangdou.main --standalone

 7、Web服务

(1)安装Redis

apt update
# 安装
apt install redis-server redis-tools
vim /etc/redis/redis.conf
# 将requirepass注释打开并进行如下设置
requirepass your_password_here
# 启动redis
redis-server /etc/redis/redis.conf
# 查看redis是否启动成功
netstat -nlpt | grep redis

(2)设置环境变量

vim ~/.bashrc

   先使用工具生成JWT_SECRET

openssl rand -base64 32

  将如下内容添加至文件末尾

export PYTHONUNBUFFERED=1
export REDIS_HOST=127.0.0.1
export REDIS_PASSWORD=redis123
export REDIS_PORT=6379
# 一个JWT_SECRET是指用于签名JSON Web Token (JWT) 的密钥或密钥对 export JWT_SECRET=pZOzhGzAlIbWydElxJLGNu6e5yKsdRyW6srUmTMOrPQ=
# 茴香豆的后台服务端口,因为我租用的GPU服务器开放的端口是8804,所以我这边选择填写8804 export SERVER_PORT=8804
# 这两个参数是飞书的Key,我不接入飞书,忽略即可 export HUIXIANGDOU_LARK_ENCRYPT_KEY=thisiskey export HUIXIANGDOU_LARK_VERIFY_TOKEN=sMzyjKi9vMlEhKCZOVtBMhhl8x23z0AG # set your service endpoint(open to Internet callback from lark and wechat)
# 微信回调地址,填写8804即可 export HUIXIANGDOU_MESSAGE_ENDPOINT
=http://127.0.0.1:8804 unset COOKIE_SECURE

  刷新环境变量

source ~/.bashrc && source activate huixiangdou

(3)编译前端 & 运行后端服务

  a. 安装 Node.js npm (需要版本为 20.x , 安装时, 可根据用户权限需要自行添加 sudo + 命令)

apt update
apt install nodejs npm
node -v # v20.12.0

  b. 如果 node -v 版本太老 (10.x),则需要升级 node 版本

npm install n -g
n stable
hash -r
node -v # v20.12.0

  c. 编译项目

cd /root/autodl-tmp/huixiangdou/huixiangdou/web/front-end
npm install && npm run build

  d. 安装依赖、运行后端服务

# 安装依赖
cd /root/autodl-tmp/huixiangdou/huixiangdou/ &&
python3 -m pip install -r web/requirements.txt
# 启动后端服务
cd /root/autodl-tmp/huixiangdou/huixiangdou/ && python3 -m web.main

  e. 启动过程中如果遇到报错,就将list类型修改为List(即将小写list类型改为List,不然报python语法错误),如果文件没有导入List,就在文件开头导入List

/root/autodl-tmp/huixiangdou/huixiangdou/web/service/cache.py
/root/autodl-tmp/huixiangdou/huixiangdou/web/model/huixiangdou.py
/root/autodl-tmp/huixiangdou/huixiangdou/web/service/chat.py
/root/autodl-tmp/huixiangdou/huixiangdou/web/service/agent.py

  导入语法为:

from typing import List

(4)运行算法 pipeline

  a. 先开个终端窗口,启动 LLM hybrid proxy

source ~/.bashrc && source activate huixiangdou
cd /root/autodl-tmp/huixiangdou/huixiangdou/ && python3 -m huixiangdou.service.llm_server_hybrid --config_path config.ini

  b. 再开个窗口,监听服务

source ~/.bashrc && source activate huixiangdou
cd /root/autodl-tmp/huixiangdou/huixiangdou/ && python3 -m web.proxy.main

(5)测试 打开服务器 端口,创建知识库测试效果(我这边的公网IP是36.139.234.89,访问11286端口时,系统会自动转发到本地的8804端口)

  http://36.139.234.89:11286/

四、新集成个人微信

1、参考地址

  https://github.com/InternLM/HuixiangDou/blob/main/docs/add_wechat_accessibility_zh.md

2、注意事项

  需要将回调地址中的IP和端口修改为你的公网IP端口,比如我的回调地址就是这个:http://36.139.234.89:11286/api/v1/message/v1/wechat/W6Zq。

  当通过公网IP36.139.234.89的11286端口进行回调时,会转发到内网的127.0.0.1:8804端口。

posted @ 2024-04-09 21:33  宜家数据小哥  阅读(50)  评论(0编辑  收藏  举报