mac上部署&debug-QAnything

387 阅读2分钟

开源项目地址:

QAnything-git仓库

在版本1.3.0更新了两大特性,一个是纯python的安装,另一个是混合检索。让QAnything达到了可投产的地步。

纯python的轻量级的版本,可以在mac等笔记本上跑起来,可以不依赖gpu。

这一重大更新,对初学者来说,大大减低了入门门槛

so,mac 来咯...

我的目的是在pycharm中部署并debug调试,我的流程是基于官网的部署文档步骤演化而来的

github.com/netease-you…

环境:pycharm,python3.10,Anaconda3

  1. clone源码

git clone -b qanything-python https://github.com/netease-youdao/QAnything.git

使用的是qanything-python分支

  1. 创建虚拟环境并拉取包

下一步执行安装命令

pip install -e .

  1. 使用脚本启动
    • 如果使用本地模型3B LLM((MiniChat-2-3B-INT8-GGUF)作为llm模型

去魔搭仓库下载模型(大文件下载不了,需自己用浏览器单独下载替换),放在项目的assets/custom_models下

git clone https://www.modelscope.cn/netease-youdao/MiniChat-2-3B-INT8-GGUF.git

执行启动命令(需xcode环境,在appstore下载安装)

bash scripts/run_for_3B_in_M1_mac.sh
    • 如果使用的是的openai 的api

修改scripts/run_for_openai_api_in_M1_mac.sh文件中的key,需要有openai的接口调用token,这个自己去度娘一下怎么申请

嫌弃申请比较麻烦,这里可以使用国内的代理服务API 聚合服务

修改完成后执行

bash scripts/run_for_openai_api_in_M1_mac.sh

直到看到控制台输出即为成功(实际的项目地址为http://127.0.0.1:8777/qanything/#/home

  1. 使用pycharm启动

使用脚本启动肯定不是我的目的,我希望能在pycharm中进行调试,所以需要替换为debug configurations启动,分析一下脚本可以看到启动命令是

CUDA_VISIBLE_DEVICES=0 python3 -m qanything_kernel.qanything_server.sanic_api --host 0.0.0.0 --port 8777 --model_size 7B  --use_openai_api --openai_api_base https://api.f2gpt.com/v1 --openai_api_key sk-xxxx --openai_api_model_name gpt-3.5-turbo-1106 --openai_api_context_length 4096 --workers 4

可以看到是在 Python 3 环境中执行 qanything_kernel.qanything_server.sanic_api 模块,后面的--host 0.0.0.0 --port 8777 --model_size 7B --use_openai_api --openai_api_base api.f2gpt.com/v1 --openai_api_key sk-xxxx --openai_api_model_name gpt-3.5-turbo-1106 --openai_api_context_length 4096 --workers 4 都是配置参数。所以我们添加启动配置如下

启动后报错

UnboundLocalError: local variable 'loop' referenced before assignment

错误是因为 Sanic框架 试图使用 uvloop 作为其事件循环,那么禁用uvloop即可,使用原生的asyncio

app.config.USE_UVLOOP = False

再次启动,完美运行成功,可以快乐地debug了。