mirror of
https://github.com/csunny/DB-GPT.git
synced 2025-08-01 16:18:27 +00:00
Merge remote-tracking branch 'origin/main' into feat_llm_manage
This commit is contained in:
commit
7c879e64ea
10
.github/release-drafter.yml
vendored
10
.github/release-drafter.yml
vendored
@ -76,6 +76,16 @@ autolabeler:
|
||||
# feat(connection): Support xxxx
|
||||
# fix(connection): Fix xxx
|
||||
- '/^(build|chore|ci|depr|docs|feat|fix|perf|refactor|release|test)\(.*connection.*\)/'
|
||||
- label: core
|
||||
title:
|
||||
# feat(core): Support xxxx
|
||||
# fix(core): Fix xxx
|
||||
- '/^(build|chore|ci|depr|docs|feat|fix|perf|refactor|release|test)\(.*core.*\)/'
|
||||
- label: web
|
||||
title:
|
||||
# feat(web): Support xxxx
|
||||
# fix(web): Fix xxx
|
||||
- '/^(build|chore|ci|depr|docs|feat|fix|perf|refactor|release|test)\(.*web.*\)/'
|
||||
- label: build
|
||||
title:
|
||||
- '/^build/'
|
||||
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -28,6 +28,8 @@ sdist/
|
||||
var/
|
||||
wheels/
|
||||
models/
|
||||
# Soft link
|
||||
models
|
||||
plugins/
|
||||
|
||||
pip-wheel-metadata/
|
||||
|
@ -86,7 +86,7 @@ Currently, we have released multiple key features, which are listed below to dem
|
||||
- Unified vector storage/indexing of knowledge base
|
||||
- Support for unstructured data such as PDF, TXT, Markdown, CSV, DOC, PPT, and WebURL
|
||||
- Multi LLMs Support, Supports multiple large language models, currently supporting
|
||||
- 🔥 InternLM(7b)
|
||||
- 🔥 InternLM(7b,20b)
|
||||
- 🔥 Baichuan2(7b,13b)
|
||||
- 🔥 Vicuna-v1.5(7b,13b)
|
||||
- 🔥 llama-2(7b,13b,70b)
|
||||
|
@ -119,7 +119,7 @@ DB-GPT 是一个开源的以数据库为基础的GPT实验项目,使用本地
|
||||
- 非结构化数据支持包括PDF、MarkDown、CSV、WebURL
|
||||
- 多模型支持
|
||||
- 支持多种大语言模型, 当前已支持如下模型:
|
||||
- 🔥 InternLM(7b)
|
||||
- 🔥 InternLM(7b,20b)
|
||||
- 🔥 Baichuan2(7b,13b)
|
||||
- 🔥 Vicuna-v1.5(7b,13b)
|
||||
- 🔥 llama-2(7b,13b,70b)
|
||||
|
@ -11,10 +11,12 @@ ARG LANGUAGE="en"
|
||||
ARG PIP_INDEX_URL="https://pypi.org/simple"
|
||||
ENV PIP_INDEX_URL=$PIP_INDEX_URL
|
||||
|
||||
ARG DB_GPT_INSTALL_MODEL="default"
|
||||
ENV DB_GPT_INSTALL_MODEL=$DB_GPT_INSTALL_MODEL
|
||||
|
||||
RUN mkdir -p /app
|
||||
|
||||
# COPY only requirements.txt first to leverage Docker cache
|
||||
COPY ./requirements.txt /app/requirements.txt
|
||||
COPY ./setup.py /app/setup.py
|
||||
COPY ./README.md /app/README.md
|
||||
|
||||
@ -26,9 +28,9 @@ WORKDIR /app
|
||||
# RUN pip3 install -i $PIP_INDEX_URL ".[all]"
|
||||
|
||||
RUN pip3 install --upgrade pip -i $PIP_INDEX_URL \
|
||||
&& pip3 install -i $PIP_INDEX_URL . \
|
||||
# && pip3 install -i $PIP_INDEX_URL ".[llama_cpp]" \
|
||||
&& (if [ "${LANGUAGE}" = "zh" ]; \
|
||||
&& pip3 install -i $PIP_INDEX_URL ".[$DB_GPT_INSTALL_MODEL]"
|
||||
|
||||
RUN (if [ "${LANGUAGE}" = "zh" ]; \
|
||||
# language is zh, download zh_core_web_sm from github
|
||||
then wget https://github.com/explosion/spacy-models/releases/download/zh_core_web_sm-3.5.0/zh_core_web_sm-3.5.0-py3-none-any.whl -O /tmp/zh_core_web_sm-3.5.0-py3-none-any.whl \
|
||||
&& pip3 install /tmp/zh_core_web_sm-3.5.0-py3-none-any.whl -i $PIP_INDEX_URL \
|
||||
@ -58,4 +60,4 @@ RUN (if [ "${LOAD_EXAMPLES}" = "true" ]; \
|
||||
ENV PYTHONPATH "/app:$PYTHONPATH"
|
||||
EXPOSE 5000
|
||||
|
||||
CMD ["python3", "pilot/server/dbgpt_server.py"]
|
||||
CMD ["dbgpt", "start", "webserver"]
|
@ -4,14 +4,21 @@ SCRIPT_LOCATION=$0
|
||||
cd "$(dirname "$SCRIPT_LOCATION")"
|
||||
WORK_DIR=$(pwd)
|
||||
|
||||
BASE_IMAGE="nvidia/cuda:11.8.0-runtime-ubuntu22.04"
|
||||
BASE_IMAGE_DEFAULT="nvidia/cuda:11.8.0-runtime-ubuntu22.04"
|
||||
BASE_IMAGE_DEFAULT_CPU="ubuntu:22.04"
|
||||
|
||||
BASE_IMAGE=$BASE_IMAGE_DEFAULT
|
||||
IMAGE_NAME="eosphorosai/dbgpt"
|
||||
IMAGE_NAME_ARGS=""
|
||||
|
||||
# zh: https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
PIP_INDEX_URL="https://pypi.org/simple"
|
||||
# en or zh
|
||||
LANGUAGE="en"
|
||||
BUILD_LOCAL_CODE="false"
|
||||
LOAD_EXAMPLES="true"
|
||||
BUILD_NETWORK=""
|
||||
DB_GPT_INSTALL_MODEL="default"
|
||||
|
||||
usage () {
|
||||
echo "USAGE: $0 [--base-image nvidia/cuda:11.8.0-runtime-ubuntu22.04] [--image-name db-gpt]"
|
||||
@ -21,6 +28,8 @@ usage () {
|
||||
echo " [--language en or zh] You language, default: en"
|
||||
echo " [--build-local-code true or false] Whether to use the local project code to package the image, default: false"
|
||||
echo " [--load-examples true or false] Whether to load examples to default database default: true"
|
||||
echo " [--network network name] The network of docker build"
|
||||
echo " [--install-mode mode name] Installation mode name, default: default, If you completely use openai's service, you can set the mode name to 'openai'"
|
||||
echo " [-h|--help] Usage message"
|
||||
}
|
||||
|
||||
@ -33,7 +42,7 @@ while [[ $# -gt 0 ]]; do
|
||||
shift # past value
|
||||
;;
|
||||
-n|--image-name)
|
||||
IMAGE_NAME="$2"
|
||||
IMAGE_NAME_ARGS="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
@ -57,6 +66,20 @@ while [[ $# -gt 0 ]]; do
|
||||
shift
|
||||
shift
|
||||
;;
|
||||
--network)
|
||||
BUILD_NETWORK=" --network $2 "
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
-h|--help)
|
||||
help="true"
|
||||
shift
|
||||
;;
|
||||
--install-mode)
|
||||
DB_GPT_INSTALL_MODEL="$2"
|
||||
shift # past argument
|
||||
shift # past value
|
||||
;;
|
||||
-h|--help)
|
||||
help="true"
|
||||
shift
|
||||
@ -73,11 +96,29 @@ if [[ $help ]]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
docker build \
|
||||
if [ "$DB_GPT_INSTALL_MODEL" != "default" ]; then
|
||||
IMAGE_NAME="$IMAGE_NAME-$DB_GPT_INSTALL_MODEL"
|
||||
echo "install mode is not 'default', set image name to: ${IMAGE_NAME}"
|
||||
fi
|
||||
|
||||
if [ -z "$IMAGE_NAME_ARGS" ]; then
|
||||
if [ "$DB_GPT_INSTALL_MODEL" == "openai" ]; then
|
||||
# Use cpu image
|
||||
BASE_IMAGE=$BASE_IMAGE_DEFAULT_CPU
|
||||
fi
|
||||
else
|
||||
# User input image is not empty
|
||||
BASE_IMAGE=$IMAGE_NAME_ARGS
|
||||
fi
|
||||
|
||||
echo "Begin build docker image, base image: ${BASE_IMAGE}, target image name: ${IMAGE_NAME}"
|
||||
|
||||
docker build $BUILD_NETWORK \
|
||||
--build-arg BASE_IMAGE=$BASE_IMAGE \
|
||||
--build-arg PIP_INDEX_URL=$PIP_INDEX_URL \
|
||||
--build-arg LANGUAGE=$LANGUAGE \
|
||||
--build-arg BUILD_LOCAL_CODE=$BUILD_LOCAL_CODE \
|
||||
--build-arg LOAD_EXAMPLES=$LOAD_EXAMPLES \
|
||||
--build-arg DB_GPT_INSTALL_MODEL=$DB_GPT_INSTALL_MODEL \
|
||||
-f Dockerfile \
|
||||
-t $IMAGE_NAME $WORK_DIR/../../
|
||||
|
@ -6,7 +6,7 @@ Local cluster deployment
|
||||
|
||||
**Installing Command-Line Tool**
|
||||
|
||||
All operations below are performed using the `dbgpt` command. To use the `dbgpt` command, you need to install the DB-GPT project with `pip install -e .`. Alternatively, you can use `python pilot/scripts/cli_scripts.py` as a substitute for the `dbgpt` command.
|
||||
All operations below are performed using the `dbgpt` command. To use the `dbgpt` command, you need to install the DB-GPT project with `pip install -e ".[default]"`. Alternatively, you can use `python pilot/scripts/cli_scripts.py` as a substitute for the `dbgpt` command.
|
||||
|
||||
### Launch Model Controller
|
||||
|
||||
|
@ -49,7 +49,7 @@ For the entire installation process of DB-GPT, we use the miniconda3 virtual env
|
||||
python>=3.10
|
||||
conda create -n dbgpt_env python=3.10
|
||||
conda activate dbgpt_env
|
||||
pip install -e .
|
||||
pip install -e ".[default]"
|
||||
```
|
||||
Before use DB-GPT Knowledge
|
||||
```bash
|
||||
|
@ -6,7 +6,7 @@ DB-GPT provides a management and deployment solution for multiple models. This c
|
||||
|
||||
|
||||
Multi LLMs Support, Supports multiple large language models, currently supporting
|
||||
- 🔥 InternLM(7b)
|
||||
- 🔥 InternLM(7b,20b)
|
||||
- 🔥 Baichuan2(7b,13b)
|
||||
- 🔥 Vicuna-v1.5(7b,13b)
|
||||
- 🔥 llama-2(7b,13b,70b)
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: DB-GPT 👏👏 0.3.6\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-09-13 09:06+0800\n"
|
||||
"POT-Creation-Date: 2023-09-20 17:34+0800\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: zh_CN\n"
|
||||
@ -20,157 +20,156 @@ msgstr ""
|
||||
"Generated-By: Babel 2.12.1\n"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:1
|
||||
#: 2d2e04ba49364eae9b8493bb274765a6
|
||||
#: 48c062c146cd42b48c248ae590d386df
|
||||
msgid "Local cluster deployment"
|
||||
msgstr "本地集群部署"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:4
|
||||
#: e405d0e7ad8c4b2da4b4ca27c77f5fea
|
||||
#: ce59bbbc9c294cafa6df8165de61967f
|
||||
msgid "Model cluster deployment"
|
||||
msgstr "模型集群部署"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:7
|
||||
#: bba397ddac754a2bab8edca163875b65
|
||||
#: 51650b41f4974f819a623db1e97764c7
|
||||
msgid "**Installing Command-Line Tool**"
|
||||
msgstr "**安装命令行工具**"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:9
|
||||
#: bc45851124354522af8c9bb9748ff1fa
|
||||
#: 64fcb0e3ec8d491aa9d15f783823e579
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
"All operations below are performed using the `dbgpt` command. To use the "
|
||||
"`dbgpt` command, you need to install the DB-GPT project with `pip install"
|
||||
" -e .`. Alternatively, you can use `python pilot/scripts/cli_scripts.py` "
|
||||
"as a substitute for the `dbgpt` command."
|
||||
" -e \".[default]\"`. Alternatively, you can use `python "
|
||||
"pilot/scripts/cli_scripts.py` as a substitute for the `dbgpt` command."
|
||||
msgstr ""
|
||||
"以下所有操作都使用 `dbgpt` 命令完成。要使用 `dbgpt` 命令,您需要安装DB-GPT项目,方法是使用`pip install -e .`。或者,您可以使用 `python pilot/scripts/cli_scripts.py` 作为 `dbgpt` 命令的替代。"
|
||||
"以下所有操作都使用 `dbgpt` 命令完成。要使用 `dbgpt` 命令,您需要安装DB-GPT项目,方法是使用`pip install -e "
|
||||
".`。或者,您可以使用 `python pilot/scripts/cli_scripts.py` 作为 `dbgpt` 命令的替代。"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:11
|
||||
#: 9d11f7807fd140c8949b634700adc966
|
||||
#: 572f2d79178a4e6780799dd8bc0867f9
|
||||
msgid "Launch Model Controller"
|
||||
msgstr "启动 Model Controller"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:17
|
||||
#: 97716be92ba64ce9a215433bddf77add
|
||||
#: 66cfeb3d834c4f7b87bb3180ae447203
|
||||
msgid "By default, the Model Controller starts on port 8000."
|
||||
msgstr "默认情况下,Model Controller 启动在 8000 端口。"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:20
|
||||
#: 3f65e6a1e59248a59c033891d1ab7ba8
|
||||
#: cddb3dbc31734462b6aa3c63e3c76fe2
|
||||
msgid "Launch LLM Model Worker"
|
||||
msgstr "启动 LLM Model Worker"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:22
|
||||
#: 60241d97573e4265b7fb150c378c4a08
|
||||
#: 953eeafd791942e895833bce2a4d755f
|
||||
msgid "If you are starting `chatglm2-6b`:"
|
||||
msgstr "如果您启动的是 `chatglm2-6b`:"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:31
|
||||
#: 18bbeb1de110438fa96dd5c736b9a7b1
|
||||
#: 779d8daa394b4731bc74a93c077961e1
|
||||
msgid "If you are starting `vicuna-13b-v1.5`:"
|
||||
msgstr "如果您启动的是 `vicuna-13b-v1.5`:"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:40
|
||||
#: ../../getting_started/install/cluster/vms/index.md:53
|
||||
#: 24b1a27313c64224aaeab6cbfad1fe19 fc94a698a7904c6893eef7e7a6e52972
|
||||
#: 736b34df46e640fbbf3eb41ff5f44cc2 b620ee13d10748e6a89c67a9bfb5a53b
|
||||
msgid "Note: Be sure to use your own model name and model path."
|
||||
msgstr "注意:确保使用您自己的模型名称和模型路径。"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:42
|
||||
#: 19746195e85f4784bf66a9e67378c04b
|
||||
#: d1f48ab4090d4344aa2a010cdc88a28e
|
||||
msgid "Launch Embedding Model Worker"
|
||||
msgstr "启动 Embedding Model Worker"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:55
|
||||
#: e93ce68091f64d0294b3f912a66cc18b
|
||||
#: 0b4c6d2ff51c4167b553a6255ce268ba
|
||||
msgid "Check your model:"
|
||||
msgstr "检查您的模型:"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:61
|
||||
#: fa0b8f3a18fe4bab88fbf002bf26d32e
|
||||
#: defd23cef23a4e74b150b7b49b99d333
|
||||
msgid "You will see the following output:"
|
||||
msgstr "您将看到以下输出:"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:75
|
||||
#: 695262fb4f224101902bc7865ac7871f
|
||||
#: aaa86e08b60e46ddae52a03f25812f24
|
||||
msgid "Connect to the model service in the webserver (dbgpt_server)"
|
||||
msgstr "在 webserver (dbgpt_server) 中连接到模型服务 (dbgpt_server)"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:77
|
||||
#: 73bf4c2ae5c64d938e3b7e77c06fa21e
|
||||
#: 7fd7b622b2f649d0b7d9b51a998a038c
|
||||
msgid ""
|
||||
"**First, modify the `.env` file to change the model name and the Model "
|
||||
"Controller connection address.**"
|
||||
msgstr ""
|
||||
"**首先,修改 `.env` 文件以更改模型名称和模型控制器连接地址。**"
|
||||
msgstr "**首先,修改 `.env` 文件以更改模型名称和模型控制器连接地址。**"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:85
|
||||
#: 8ab126fd72ed4368a79b821ba50e62c8
|
||||
#: 7ce03ec66f624d0eabd5a2fbe2efcbcc
|
||||
msgid "Start the webserver"
|
||||
msgstr "启动 webserver"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:91
|
||||
#: 5a7e25c84ca2412bb64310bfad9e2403
|
||||
#: 9e1e2b7925834d6b9140633db1082032
|
||||
msgid "`--light` indicates not to start the embedded model service."
|
||||
msgstr "`--light` 表示不启动嵌入式模型服务。"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:93
|
||||
#: 8cd9ec4fa9cb4c0fa8ff05c05a85ea7f
|
||||
#: 4d47f76763914a78a89d62f0befa3fd9
|
||||
msgid ""
|
||||
"Alternatively, you can prepend the command with `LLM_MODEL=chatglm2-6b` "
|
||||
"to start:"
|
||||
msgstr ""
|
||||
"或者,您可以在命令前加上 `LLM_MODEL=chatglm2-6b` 来启动:"
|
||||
msgstr "或者,您可以在命令前加上 `LLM_MODEL=chatglm2-6b` 来启动:"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:100
|
||||
#: 13ed16758a104860b5fc982d36638b17
|
||||
#: 28408fe554dd411c9ca672466d5563b6
|
||||
msgid "More Command-Line Usages"
|
||||
msgstr "更多命令行用法"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:102
|
||||
#: 175f614d547a4391bab9a77762f9174e
|
||||
#: 8e0aa88d092d49fdb0fa849c83565a41
|
||||
msgid "You can view more command-line usages through the help command."
|
||||
msgstr "您可以通过帮助命令查看更多命令行用法。"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:104
|
||||
#: 6a4475d271c347fbbb35f2936a86823f
|
||||
#: f307f82ced7947f980bb65b3543580d1
|
||||
msgid "**View the `dbgpt` help**"
|
||||
msgstr "**查看 `dbgpt` 帮助**"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:109
|
||||
#: 3eb11234cf504cc9ac369d8462daa14b
|
||||
#: 7564aed77a7d43e6878b506c6a9788a2
|
||||
msgid "You will see the basic command parameters and usage:"
|
||||
msgstr "您将看到基本的命令参数和用法:"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:127
|
||||
#: 6eb47aecceec414e8510fe022b6fddbd
|
||||
#: 569f2b9e62e44179ae8dcf5b05a1f3e8
|
||||
msgid "**View the `dbgpt start` help**"
|
||||
msgstr "**查看 `dbgpt start` 帮助**"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:133
|
||||
#: 1f4c0a4ce0704ca8ac33178bd13c69ad
|
||||
#: 43e8747d136d4f6cab83c1b1beaa32b0
|
||||
msgid "Here you can see the related commands and usage for start:"
|
||||
msgstr "在这里,您可以看到启动的相关命令和用法:"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:150
|
||||
#: 22e8e67bc55244e79764d091f334560b
|
||||
#: 25e37b3050b348ec9a5c96d9db515e9b
|
||||
msgid "**View the `dbgpt start worker`help**"
|
||||
msgstr "**查看 `dbgpt start worker` 帮助**"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:156
|
||||
#: 5631b83fda714780855e99e90d4eb542
|
||||
#: 8e959fd455ca45f9a5e69e0af9b764a4
|
||||
msgid "Here you can see the parameters to start Model Worker:"
|
||||
msgstr "在这里,您可以看到启动 Model Worker 的参数:"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:215
|
||||
#: cf4a31fd3368481cba1b3ab382615f53
|
||||
#: 374d274c7a254533900145ef17bb24fb
|
||||
msgid "**View the `dbgpt model`help**"
|
||||
msgstr "**查看 `dbgpt model` 帮助**"
|
||||
|
||||
#: ../../getting_started/install/cluster/vms/index.md:221
|
||||
#: 3740774ec4b240f2882b5b59da224d55
|
||||
#: 19bcc9abe62f490d9c3c092c5deea24a
|
||||
msgid ""
|
||||
"The `dbgpt model ` command can connect to the Model Controller via the "
|
||||
"Model Controller address and then manage a remote model:"
|
||||
msgstr ""
|
||||
"`dbgpt model` 命令可以通过 Model Controller 地址连接到 Model Controller,然后管理远程模型:"
|
||||
msgstr "`dbgpt model` 命令可以通过 Model Controller 地址连接到 Model Controller,然后管理远程模型:"
|
||||
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: DB-GPT 👏👏 0.3.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2023-09-13 10:46+0800\n"
|
||||
"POT-Creation-Date: 2023-09-20 17:34+0800\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language: zh_CN\n"
|
||||
@ -20,86 +20,91 @@ msgstr ""
|
||||
"Generated-By: Babel 2.12.1\n"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:2
|
||||
#: ../../getting_started/install/llm/llm.rst:24
|
||||
#: e693a8d3769b4d9e99c4442ca77dc43c
|
||||
#: ../../getting_started/install/llm/llm.rst:25
|
||||
#: 5242ca319fab49988e018cd5b5d893df
|
||||
msgid "LLM Usage"
|
||||
msgstr "LLM使用"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:3 0a73562d18ba455bab04277b715c3840
|
||||
#: ../../getting_started/install/llm/llm.rst:3 b12a86c062f441cd870e94d56146e6ea
|
||||
msgid ""
|
||||
"DB-GPT provides a management and deployment solution for multiple models."
|
||||
" This chapter mainly discusses how to deploy different models."
|
||||
msgstr "DB-GPT提供了多模型的管理和部署方案,本章主要讲解针对不同的模型该怎么部署"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:19
|
||||
#: d7e4de2a7e004888897204ec76b6030b
|
||||
#: ../../getting_started/install/llm/llm.rst:20
|
||||
#: a7e76642fec94a658a48ced7b4133a61
|
||||
msgid ""
|
||||
"Multi LLMs Support, Supports multiple large language models, currently "
|
||||
"supporting"
|
||||
msgstr "目前DB-GPT已适配如下模型"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:9 4616886b8b2244bd93355e871356d89e
|
||||
#: ../../getting_started/install/llm/llm.rst:9 9dbc17aae88a4d2fa4c291d58e8390e2
|
||||
msgid "🔥 InternLM(7b,20b)"
|
||||
msgstr ""
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:10
|
||||
#: 7d423bfe0c9f41758f0bf55e30803955
|
||||
#, fuzzy
|
||||
msgid "🔥 Baichuan2(7b,13b)"
|
||||
msgstr "Baichuan(7b,13b)"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:10
|
||||
#: ad0e4793d4e744c1bdf59f5a3d9c84be
|
||||
#: ../../getting_started/install/llm/llm.rst:11
|
||||
#: 2e44b9f9f2a842d1969255610974f9c0
|
||||
msgid "🔥 Vicuna-v1.5(7b,13b)"
|
||||
msgstr "🔥 Vicuna-v1.5(7b,13b)"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:11
|
||||
#: d291e58001ae487bbbf2a1f9f889f5fd
|
||||
#: ../../getting_started/install/llm/llm.rst:12
|
||||
#: ea32bf9802054af396accaf55291a3a1
|
||||
msgid "🔥 llama-2(7b,13b,70b)"
|
||||
msgstr "🔥 llama-2(7b,13b,70b)"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:12
|
||||
#: 1e49702ee40b4655945a2a13efaad536
|
||||
#: ../../getting_started/install/llm/llm.rst:13
|
||||
#: fc39e32250424dbaa7c0c65d45a01983
|
||||
msgid "WizardLM-v1.2(13b)"
|
||||
msgstr "WizardLM-v1.2(13b)"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:13
|
||||
#: 4ef5913ddfe840d7a12289e6e1d4cb60
|
||||
#: ../../getting_started/install/llm/llm.rst:14
|
||||
#: e17ed83eba5a46ea9950c8ba719403ba
|
||||
msgid "Vicuna (7b,13b)"
|
||||
msgstr "Vicuna (7b,13b)"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:14
|
||||
#: ea46c2211257459285fa48083cb59561
|
||||
#: ../../getting_started/install/llm/llm.rst:15
|
||||
#: a13575c9b1b1458282d5a6351128735f
|
||||
msgid "ChatGLM-6b (int4,int8)"
|
||||
msgstr "ChatGLM-6b (int4,int8)"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:15
|
||||
#: 90688302bae4452a84f14e8ecb7f1a21
|
||||
#: ../../getting_started/install/llm/llm.rst:16
|
||||
#: 504b4a29240d4e69a258d5ca4d0846d2
|
||||
msgid "ChatGLM2-6b (int4,int8)"
|
||||
msgstr "ChatGLM2-6b (int4,int8)"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:16
|
||||
#: ee1469545a314696a36e7296c7b71960
|
||||
#: ../../getting_started/install/llm/llm.rst:17
|
||||
#: 0edd5c73197e4e5d9691665dc79e78b0
|
||||
msgid "guanaco(7b,13b,33b)"
|
||||
msgstr "guanaco(7b,13b,33b)"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:17
|
||||
#: 25abad241f4d4eee970d5938bf71311f
|
||||
#: ../../getting_started/install/llm/llm.rst:18
|
||||
#: bd97e381ac6743e4a03df54b980ac5b9
|
||||
msgid "Gorilla(7b,13b)"
|
||||
msgstr "Gorilla(7b,13b)"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:18
|
||||
#: 8e3d0399431a4c6a9065a8ae0ad3c8ac
|
||||
#: ../../getting_started/install/llm/llm.rst:19
|
||||
#: 8d46081371b34471ba8f1dbc374955be
|
||||
msgid "Baichuan(7b,13b)"
|
||||
msgstr "Baichuan(7b,13b)"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:19
|
||||
#: c285fa7c9c6c4e3e9840761a09955348
|
||||
#: ../../getting_started/install/llm/llm.rst:20
|
||||
#: 08a1d4b2abac4effbc236fcd38f9a205
|
||||
msgid "OpenAI"
|
||||
msgstr "OpenAI"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:21
|
||||
#: 4ac13a21f323455982750bd2e0243b72
|
||||
#: ../../getting_started/install/llm/llm.rst:22
|
||||
#: 4f1e438738854cf1ad35800ddbeb9e12
|
||||
msgid "llama_cpp"
|
||||
msgstr "llama_cpp"
|
||||
|
||||
#: ../../getting_started/install/llm/llm.rst:22
|
||||
#: 7231edceef584724a6f569c6b363e083
|
||||
#: ../../getting_started/install/llm/llm.rst:23
|
||||
#: 5db1549fcfca4744b441cde5922d7fd3
|
||||
msgid "quantization"
|
||||
msgstr "quantization"
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
"""加载组件"""
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import os
|
||||
@ -8,17 +9,19 @@ import requests
|
||||
import threading
|
||||
import datetime
|
||||
from pathlib import Path
|
||||
from typing import List
|
||||
from typing import List, TYPE_CHECKING
|
||||
from urllib.parse import urlparse
|
||||
from zipimport import zipimporter
|
||||
|
||||
import requests
|
||||
from auto_gpt_plugin_template import AutoGPTPluginTemplate
|
||||
|
||||
from pilot.configs.config import Config
|
||||
from pilot.configs.model_config import PLUGINS_DIR
|
||||
from pilot.logs import logger
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from auto_gpt_plugin_template import AutoGPTPluginTemplate
|
||||
|
||||
|
||||
def inspect_zip_for_modules(zip_path: str, debug: bool = False) -> list[str]:
|
||||
"""
|
||||
@ -115,7 +118,7 @@ def load_native_plugins(cfg: Config):
|
||||
t.start()
|
||||
|
||||
|
||||
def scan_plugins(cfg: Config, debug: bool = False) -> List[AutoGPTPluginTemplate]:
|
||||
def scan_plugins(cfg: Config, debug: bool = False) -> List["AutoGPTPluginTemplate"]:
|
||||
"""Scan the plugins directory for plugins and loads them.
|
||||
|
||||
Args:
|
||||
|
@ -1,11 +1,16 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
from typing import List
|
||||
from typing import List, Optional, TYPE_CHECKING
|
||||
|
||||
from pilot.singleton import Singleton
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from auto_gpt_plugin_template import AutoGPTPluginTemplate
|
||||
from pilot.component import SystemApp
|
||||
|
||||
|
||||
class Config(metaclass=Singleton):
|
||||
"""Configuration class to store the state of bools for different scripts access"""
|
||||
@ -99,9 +104,8 @@ class Config(metaclass=Singleton):
|
||||
self.message_dir = os.getenv("MESSAGE_HISTORY_DIR", "../../message")
|
||||
|
||||
### The associated configuration parameters of the plug-in control the loading and use of the plug-in
|
||||
from auto_gpt_plugin_template import AutoGPTPluginTemplate
|
||||
|
||||
self.plugins: List[AutoGPTPluginTemplate] = []
|
||||
self.plugins: List["AutoGPTPluginTemplate"] = []
|
||||
self.plugins_openai = []
|
||||
self.plugins_auto_load = os.getenv("AUTO_LOAD_PLUGIN", "True") == "True"
|
||||
|
||||
@ -189,9 +193,7 @@ class Config(metaclass=Singleton):
|
||||
### Log level
|
||||
self.DBGPT_LOG_LEVEL = os.getenv("DBGPT_LOG_LEVEL", "INFO")
|
||||
|
||||
from pilot.component import SystemApp
|
||||
|
||||
self.SYSTEM_APP: SystemApp = None
|
||||
self.SYSTEM_APP: Optional["SystemApp"] = None
|
||||
|
||||
def set_debug_mode(self, value: bool) -> None:
|
||||
"""Set the debug mode value"""
|
||||
|
@ -23,15 +23,18 @@ os.chdir(new_directory)
|
||||
|
||||
|
||||
def get_device() -> str:
|
||||
import torch
|
||||
try:
|
||||
import torch
|
||||
|
||||
return (
|
||||
"cuda"
|
||||
if torch.cuda.is_available()
|
||||
else "mps"
|
||||
if torch.backends.mps.is_available()
|
||||
else "cpu"
|
||||
)
|
||||
return (
|
||||
"cuda"
|
||||
if torch.cuda.is_available()
|
||||
else "mps"
|
||||
if torch.backends.mps.is_available()
|
||||
else "cpu"
|
||||
)
|
||||
except ModuleNotFoundError:
|
||||
return "cpu"
|
||||
|
||||
|
||||
LLM_MODEL_CONFIG = {
|
||||
@ -70,8 +73,9 @@ LLM_MODEL_CONFIG = {
|
||||
"wizardlm-13b": os.path.join(MODEL_PATH, "WizardLM-13B-V1.2"),
|
||||
"llama-cpp": os.path.join(MODEL_PATH, "ggml-model-q4_0.bin"),
|
||||
# https://huggingface.co/internlm/internlm-chat-7b-v1_1, 7b vs 7b-v1.1: https://github.com/InternLM/InternLM/issues/288
|
||||
"internlm-7b": os.path.join(MODEL_PATH, "internlm-chat-7b-v1_1"),
|
||||
"internlm-7b": os.path.join(MODEL_PATH, "internlm-chat-7b"),
|
||||
"internlm-7b-8k": os.path.join(MODEL_PATH, "internlm-chat-7b-8k"),
|
||||
"internlm-20b": os.path.join(MODEL_PATH, "internlm-20b-chat"),
|
||||
}
|
||||
|
||||
EMBEDDING_MODEL_CONFIG = {
|
||||
|
@ -1,6 +1,5 @@
|
||||
from typing import Optional
|
||||
|
||||
from chromadb.errors import NotEnoughElementsException
|
||||
from langchain.text_splitter import TextSplitter
|
||||
|
||||
from pilot.embedding_engine.embedding_factory import (
|
||||
@ -69,10 +68,10 @@ class EmbeddingEngine:
|
||||
vector_client = VectorStoreConnector(
|
||||
self.vector_store_config["vector_store_type"], self.vector_store_config
|
||||
)
|
||||
try:
|
||||
ans = vector_client.similar_search(text, topk)
|
||||
except NotEnoughElementsException:
|
||||
ans = vector_client.similar_search(text, 1)
|
||||
# https://github.com/chroma-core/chroma/issues/657
|
||||
ans = vector_client.similar_search(text, topk)
|
||||
# except NotEnoughElementsException:
|
||||
# ans = vector_client.similar_search(text, 1)
|
||||
return ans
|
||||
|
||||
def vector_exist(self):
|
||||
|
@ -1,6 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
from typing import List, Optional
|
||||
|
||||
import markdown
|
||||
|
@ -3,7 +3,6 @@
|
||||
from abc import ABC, abstractmethod
|
||||
from typing import Dict, List, Optional
|
||||
|
||||
from chromadb.errors import NotEnoughElementsException
|
||||
from langchain.text_splitter import TextSplitter
|
||||
|
||||
from pilot.vector_store.connector import VectorStoreConnector
|
||||
@ -71,10 +70,9 @@ class SourceEmbedding(ABC):
|
||||
self.vector_client = VectorStoreConnector(
|
||||
self.vector_store_config["vector_store_type"], self.vector_store_config
|
||||
)
|
||||
try:
|
||||
ans = self.vector_client.similar_search(doc, topk)
|
||||
except NotEnoughElementsException:
|
||||
ans = self.vector_client.similar_search(doc, 1)
|
||||
# https://github.com/chroma-core/chroma/issues/657
|
||||
ans = self.vector_client.similar_search(doc, topk)
|
||||
# ans = self.vector_client.similar_search(doc, 1)
|
||||
return ans
|
||||
|
||||
def vector_name_exist(self):
|
||||
|
@ -1,5 +1,4 @@
|
||||
import logging
|
||||
import platform
|
||||
from typing import Dict, Iterator, List
|
||||
|
||||
from pilot.configs.model_config import get_device
|
||||
@ -12,7 +11,7 @@ from pilot.server.chat_adapter import get_llm_chat_adapter, BaseChatAdpter
|
||||
from pilot.utils.model_utils import _clear_torch_cache
|
||||
from pilot.utils.parameter_utils import EnvArgumentParser
|
||||
|
||||
logger = logging.getLogger("model_worker")
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class DefaultModelWorker(ModelWorker):
|
||||
@ -91,8 +90,13 @@ class DefaultModelWorker(ModelWorker):
|
||||
_clear_torch_cache(self._model_params.device)
|
||||
|
||||
def generate_stream(self, params: Dict) -> Iterator[ModelOutput]:
|
||||
import torch
|
||||
torch_imported = False
|
||||
try:
|
||||
import torch
|
||||
|
||||
torch_imported = True
|
||||
except ImportError:
|
||||
pass
|
||||
try:
|
||||
# params adaptation
|
||||
params, model_context = self.llm_chat_adapter.model_adaptation(
|
||||
@ -117,16 +121,17 @@ class DefaultModelWorker(ModelWorker):
|
||||
)
|
||||
yield model_output
|
||||
print(f"\n\nfull stream output:\n{previous_response}")
|
||||
except torch.cuda.CudaError:
|
||||
model_output = ModelOutput(
|
||||
text="**GPU OutOfMemory, Please Refresh.**", error_code=0
|
||||
)
|
||||
yield model_output
|
||||
except Exception as e:
|
||||
model_output = ModelOutput(
|
||||
text=f"**LLMServer Generate Error, Please CheckErrorInfo.**: {e}",
|
||||
error_code=0,
|
||||
)
|
||||
# Check if the exception is a torch.cuda.CudaError and if torch was imported.
|
||||
if torch_imported and isinstance(e, torch.cuda.CudaError):
|
||||
model_output = ModelOutput(
|
||||
text="**GPU OutOfMemory, Please Refresh.**", error_code=0
|
||||
)
|
||||
else:
|
||||
model_output = ModelOutput(
|
||||
text=f"**LLMServer Generate Error, Please CheckErrorInfo.**: {e}",
|
||||
error_code=0,
|
||||
)
|
||||
yield model_output
|
||||
|
||||
def generate(self, params: Dict) -> ModelOutput:
|
||||
|
@ -5,6 +5,7 @@ import os
|
||||
import sys
|
||||
import random
|
||||
import time
|
||||
import logging
|
||||
from concurrent.futures import ThreadPoolExecutor
|
||||
from dataclasses import asdict
|
||||
from typing import Awaitable, Callable, Dict, Iterator, List, Optional
|
||||
@ -12,7 +13,6 @@ from typing import Awaitable, Callable, Dict, Iterator, List, Optional
|
||||
from fastapi import APIRouter, FastAPI
|
||||
from fastapi.responses import StreamingResponse
|
||||
from pilot.component import SystemApp
|
||||
from pilot.configs.model_config import LOGDIR
|
||||
from pilot.model.base import (
|
||||
ModelInstance,
|
||||
ModelOutput,
|
||||
@ -30,15 +30,13 @@ from pilot.model.cluster.manager_base import (
|
||||
WorkerManagerFactory,
|
||||
)
|
||||
from pilot.model.cluster.base import *
|
||||
from pilot.utils import build_logger
|
||||
from pilot.utils.parameter_utils import (
|
||||
EnvArgumentParser,
|
||||
ParameterDescription,
|
||||
_dict_to_command_args,
|
||||
)
|
||||
|
||||
logger = build_logger("model_worker", LOGDIR + "/model_worker.log")
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
RegisterFunc = Callable[[WorkerRunData], Awaitable[None]]
|
||||
DeregisterFunc = Callable[[WorkerRunData], Awaitable[None]]
|
||||
|
@ -1,4 +1,3 @@
|
||||
import bardapi
|
||||
import requests
|
||||
from typing import List
|
||||
from pilot.scene.base_message import ModelMessage, ModelMessageRoleType
|
||||
@ -52,6 +51,8 @@ def bard_generate_stream(
|
||||
else:
|
||||
yield f"bard proxy url request failed!, response = {str(response)}"
|
||||
else:
|
||||
import bardapi
|
||||
|
||||
response = bardapi.core.Bard(proxy_api_key).get_answer("\n".join(msgs))
|
||||
|
||||
if response is not None and response.get("content") is not None:
|
||||
|
@ -10,9 +10,6 @@ from pilot.scene.base_chat import BaseChat
|
||||
from pilot.scene.base import ChatScene
|
||||
from pilot.common.sql_database import Database
|
||||
from pilot.configs.config import Config
|
||||
from pilot.common.markdown_text import (
|
||||
generate_htm_table,
|
||||
)
|
||||
from pilot.scene.chat_data.chat_excel.excel_learning.prompt import prompt
|
||||
from pilot.scene.chat_data.chat_excel.excel_reader import ExcelReader
|
||||
from pilot.json_utils.utilities import DateTimeEncoder
|
||||
|
@ -1,7 +1,5 @@
|
||||
from typing import Dict
|
||||
|
||||
from chromadb.errors import NoIndexException
|
||||
|
||||
from pilot.scene.base_chat import BaseChat
|
||||
from pilot.scene.base import ChatScene
|
||||
from pilot.configs.config import Config
|
||||
@ -59,22 +57,19 @@ class ChatKnowledge(BaseChat):
|
||||
)
|
||||
|
||||
def generate_input_values(self):
|
||||
try:
|
||||
if self.space_context:
|
||||
self.prompt_template.template_define = self.space_context["prompt"][
|
||||
"scene"
|
||||
]
|
||||
self.prompt_template.template = self.space_context["prompt"]["template"]
|
||||
docs = self.knowledge_embedding_client.similar_search(
|
||||
self.current_user_input, self.top_k
|
||||
)
|
||||
context = [d.page_content for d in docs]
|
||||
context = context[: self.max_token]
|
||||
input_values = {"context": context, "question": self.current_user_input}
|
||||
except NoIndexException:
|
||||
if self.space_context:
|
||||
self.prompt_template.template_define = self.space_context["prompt"]["scene"]
|
||||
self.prompt_template.template = self.space_context["prompt"]["template"]
|
||||
docs = self.knowledge_embedding_client.similar_search(
|
||||
self.current_user_input, self.top_k
|
||||
)
|
||||
if not docs:
|
||||
raise ValueError(
|
||||
"you have no knowledge space, please add your knowledge space"
|
||||
)
|
||||
context = [d.page_content for d in docs]
|
||||
context = context[: self.max_token]
|
||||
input_values = {"context": context, "question": self.current_user_input}
|
||||
return input_values
|
||||
|
||||
@property
|
||||
|
@ -71,7 +71,7 @@ def load(
|
||||
skip_wrong_doc: bool,
|
||||
max_workers: int,
|
||||
):
|
||||
"""Load you local knowledge to DB-GPT"""
|
||||
"""Load your local knowledge to DB-GPT"""
|
||||
from pilot.server.knowledge._cli.knowledge_client import knowledge_init
|
||||
|
||||
knowledge_init(
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -170,8 +170,9 @@ class DBSummaryClient:
|
||||
def init_db_profile(self, db_summary_client, dbname, embeddings):
|
||||
from pilot.embedding_engine.string_embedding import StringEmbedding
|
||||
|
||||
vector_store_name = dbname + "_profile"
|
||||
profile_store_config = {
|
||||
"vector_store_name": dbname + "_profile",
|
||||
"vector_store_name": vector_store_name,
|
||||
"chroma_persist_path": KNOWLEDGE_UPLOAD_ROOT_PATH,
|
||||
"vector_store_type": CFG.VECTOR_STORE_TYPE,
|
||||
"embeddings": embeddings,
|
||||
@ -190,6 +191,8 @@ class DBSummaryClient:
|
||||
)
|
||||
docs.extend(embedding.read_batch())
|
||||
embedding.index_to_store(docs)
|
||||
else:
|
||||
logger.info(f"Vector store name {vector_store_name} exist")
|
||||
logger.info("init db profile success...")
|
||||
|
||||
|
||||
|
@ -2,6 +2,7 @@ import os
|
||||
from typing import Any
|
||||
|
||||
from chromadb.config import Settings
|
||||
from chromadb import PersistentClient
|
||||
from pilot.logs import logger
|
||||
from pilot.vector_store.base import VectorStoreBase
|
||||
|
||||
@ -18,15 +19,18 @@ class ChromaStore(VectorStoreBase):
|
||||
ctx["chroma_persist_path"], ctx["vector_store_name"] + ".vectordb"
|
||||
)
|
||||
chroma_settings = Settings(
|
||||
chroma_db_impl="duckdb+parquet",
|
||||
# chroma_db_impl="duckdb+parquet", => deprecated configuration of Chroma
|
||||
persist_directory=self.persist_dir,
|
||||
anonymized_telemetry=False,
|
||||
)
|
||||
client = PersistentClient(path=self.persist_dir, settings=chroma_settings)
|
||||
|
||||
collection_metadata = {"hnsw:space": "cosine"}
|
||||
self.vector_store_client = Chroma(
|
||||
persist_directory=self.persist_dir,
|
||||
embedding_function=self.embeddings,
|
||||
client_settings=chroma_settings,
|
||||
# client_settings=chroma_settings,
|
||||
client=client,
|
||||
collection_metadata=collection_metadata,
|
||||
)
|
||||
|
||||
@ -35,9 +39,13 @@ class ChromaStore(VectorStoreBase):
|
||||
return self.vector_store_client.similarity_search(text, topk)
|
||||
|
||||
def vector_name_exists(self):
|
||||
return (
|
||||
os.path.exists(self.persist_dir) and len(os.listdir(self.persist_dir)) > 0
|
||||
)
|
||||
logger.info(f"Check persist_dir: {self.persist_dir}")
|
||||
if not os.path.exists(self.persist_dir):
|
||||
return False
|
||||
files = os.listdir(self.persist_dir)
|
||||
# Skip default file: chroma.sqlite3
|
||||
files = list(filter(lambda f: f != "chroma.sqlite3", files))
|
||||
return len(files) > 0
|
||||
|
||||
def load_document(self, documents):
|
||||
logger.info("ChromaStore load document")
|
||||
|
@ -1,84 +0,0 @@
|
||||
# torch==2.0.0
|
||||
aiohttp==3.8.4
|
||||
aiosignal==1.3.1
|
||||
async-timeout==4.0.2
|
||||
attrs==22.2.0
|
||||
cchardet==2.1.7
|
||||
chardet==5.1.0
|
||||
# contourpy==1.0.7
|
||||
# cycler==0.11.0
|
||||
filelock==3.9.0
|
||||
fonttools==4.38.0
|
||||
frozenlist==1.3.3
|
||||
huggingface-hub==0.14.1
|
||||
importlib-resources==5.12.0
|
||||
|
||||
sqlparse==0.4.4
|
||||
# kiwisolver==1.4.4
|
||||
# matplotlib==3.7.1
|
||||
multidict==6.0.4
|
||||
packaging==23.0
|
||||
psutil==5.9.4
|
||||
# pycocotools==2.0.6
|
||||
# pyparsing==3.0.9
|
||||
python-dateutil==2.8.2
|
||||
pyyaml==6.0
|
||||
tokenizers==0.13.2
|
||||
tqdm==4.64.1
|
||||
transformers>=4.31.0
|
||||
transformers_stream_generator
|
||||
# timm==0.6.13
|
||||
spacy==3.5.3
|
||||
webdataset==0.2.48
|
||||
yarl==1.8.2
|
||||
zipp==3.14.0
|
||||
omegaconf==2.3.0
|
||||
opencv-python==4.7.0.72
|
||||
iopath==0.1.10
|
||||
tenacity==8.2.2
|
||||
peft
|
||||
# TODO remove pycocoevalcap
|
||||
pycocoevalcap
|
||||
cpm_kernels
|
||||
umap-learn
|
||||
# notebook
|
||||
gradio==3.23
|
||||
gradio-client==0.0.8
|
||||
# wandb
|
||||
# llama-index==0.5.27
|
||||
|
||||
# TODO move bitsandbytes to optional
|
||||
# bitsandbytes
|
||||
accelerate>=0.20.3
|
||||
|
||||
unstructured==0.6.3
|
||||
gpt4all==0.3.0
|
||||
diskcache==5.6.1
|
||||
seaborn
|
||||
auto-gpt-plugin-template
|
||||
pymdown-extensions
|
||||
gTTS==2.3.1
|
||||
langchain>=0.0.286
|
||||
nltk
|
||||
python-dotenv==1.0.0
|
||||
|
||||
vcrpy
|
||||
chromadb==0.3.22
|
||||
markdown2
|
||||
colorama
|
||||
playsound
|
||||
distro
|
||||
pypdf
|
||||
weaviate-client
|
||||
bardapi==0.1.29
|
||||
|
||||
# database
|
||||
|
||||
# TODO moved to optional dependencies
|
||||
pymysql
|
||||
duckdb
|
||||
duckdb-engine
|
||||
|
||||
# cli
|
||||
prettytable
|
||||
cachetools
|
@ -1,4 +1,4 @@
|
||||
# Testing dependencies
|
||||
# Testing and dev dependencies
|
||||
pytest
|
||||
asynctest
|
||||
pytest-asyncio
|
||||
@ -7,4 +7,6 @@ pytest-cov
|
||||
pytest-integration
|
||||
pytest-mock
|
||||
pytest-recording
|
||||
pytesseract==0.3.10
|
||||
pytesseract==0.3.10
|
||||
# python code format
|
||||
black
|
117
setup.py
117
setup.py
@ -10,7 +10,6 @@ from urllib.parse import urlparse, quote
|
||||
import re
|
||||
from pip._internal.utils.appdirs import user_cache_dir
|
||||
import shutil
|
||||
import tempfile
|
||||
from setuptools import find_packages
|
||||
|
||||
with open("README.md", mode="r", encoding="utf-8") as fh:
|
||||
@ -74,7 +73,6 @@ def cache_package(package_url: str, package_name: str, is_windows: bool = False)
|
||||
|
||||
local_path = os.path.join(cache_dir, filename)
|
||||
if not os.path.exists(local_path):
|
||||
# temp_file, temp_path = tempfile.mkstemp()
|
||||
temp_path = local_path + ".tmp"
|
||||
if os.path.exists(temp_path):
|
||||
os.remove(temp_path)
|
||||
@ -204,23 +202,16 @@ def torch_requires(
|
||||
torchvision_version: str = "0.15.1",
|
||||
torchaudio_version: str = "2.0.1",
|
||||
):
|
||||
torch_pkgs = []
|
||||
torch_pkgs = [
|
||||
f"torch=={torch_version}",
|
||||
f"torchvision=={torchvision_version}",
|
||||
f"torchaudio=={torchaudio_version}",
|
||||
]
|
||||
torch_cuda_pkgs = []
|
||||
os_type, _ = get_cpu_avx_support()
|
||||
if os_type == OSType.DARWIN:
|
||||
torch_pkgs = [
|
||||
f"torch=={torch_version}",
|
||||
f"torchvision=={torchvision_version}",
|
||||
f"torchaudio=={torchaudio_version}",
|
||||
]
|
||||
else:
|
||||
if os_type != OSType.DARWIN:
|
||||
cuda_version = get_cuda_version()
|
||||
if not cuda_version:
|
||||
torch_pkgs = [
|
||||
f"torch=={torch_version}",
|
||||
f"torchvision=={torchvision_version}",
|
||||
f"torchaudio=={torchaudio_version}",
|
||||
]
|
||||
else:
|
||||
if cuda_version:
|
||||
supported_versions = ["11.7", "11.8"]
|
||||
if cuda_version not in supported_versions:
|
||||
print(
|
||||
@ -238,12 +229,16 @@ def torch_requires(
|
||||
torchvision_url_cached = cache_package(
|
||||
torchvision_url, "torchvision", os_type == OSType.WINDOWS
|
||||
)
|
||||
torch_pkgs = [
|
||||
|
||||
torch_cuda_pkgs = [
|
||||
f"torch @ {torch_url_cached}",
|
||||
f"torchvision @ {torchvision_url_cached}",
|
||||
f"torchaudio=={torchaudio_version}",
|
||||
]
|
||||
|
||||
setup_spec.extras["torch"] = torch_pkgs
|
||||
setup_spec.extras["torch_cpu"] = torch_pkgs
|
||||
setup_spec.extras["torch_cuda"] = torch_cuda_pkgs
|
||||
|
||||
|
||||
def llama_cpp_python_cuda_requires():
|
||||
@ -274,6 +269,57 @@ def llama_cpp_python_cuda_requires():
|
||||
setup_spec.extras["llama_cpp"].append(f"llama_cpp_python_cuda @ {extra_index_url}")
|
||||
|
||||
|
||||
def core_requires():
|
||||
"""
|
||||
pip install db-gpt or pip install "db-gpt[core]"
|
||||
"""
|
||||
setup_spec.extras["core"] = [
|
||||
"aiohttp==3.8.4",
|
||||
"chardet==5.1.0",
|
||||
"importlib-resources==5.12.0",
|
||||
"psutil==5.9.4",
|
||||
"python-dotenv==1.0.0",
|
||||
"colorama",
|
||||
"prettytable",
|
||||
"cachetools",
|
||||
]
|
||||
|
||||
setup_spec.extras["framework"] = [
|
||||
"httpx",
|
||||
"sqlparse==0.4.4",
|
||||
"seaborn",
|
||||
# https://github.com/eosphoros-ai/DB-GPT/issues/551
|
||||
"pandas==2.0.3",
|
||||
"auto-gpt-plugin-template",
|
||||
"gTTS==2.3.1",
|
||||
"langchain>=0.0.286",
|
||||
"SQLAlchemy",
|
||||
"pymysql",
|
||||
"duckdb",
|
||||
"duckdb-engine",
|
||||
"jsonschema",
|
||||
# TODO move transformers to default
|
||||
"transformers>=4.31.0",
|
||||
]
|
||||
|
||||
|
||||
def knowledge_requires():
|
||||
"""
|
||||
pip install "db-gpt[knowledge]"
|
||||
"""
|
||||
setup_spec.extras["knowledge"] = [
|
||||
"spacy==3.5.3",
|
||||
# "chromadb==0.3.22",
|
||||
"chromadb",
|
||||
"markdown",
|
||||
"bs4",
|
||||
"python-pptx",
|
||||
"python-docx",
|
||||
"pypdf",
|
||||
"python-multipart",
|
||||
]
|
||||
|
||||
|
||||
def llama_cpp_requires():
|
||||
"""
|
||||
pip install "db-gpt[llama_cpp]"
|
||||
@ -309,6 +355,7 @@ def all_vector_store_requires():
|
||||
setup_spec.extras["vstore"] = [
|
||||
"grpcio==1.47.5", # maybe delete it
|
||||
"pymilvus==2.2.1",
|
||||
"weaviate-client",
|
||||
]
|
||||
|
||||
|
||||
@ -324,6 +371,31 @@ def openai_requires():
|
||||
pip install "db-gpt[openai]"
|
||||
"""
|
||||
setup_spec.extras["openai"] = ["openai", "tiktoken"]
|
||||
setup_spec.extras["openai"] += setup_spec.extras["framework"]
|
||||
setup_spec.extras["openai"] += setup_spec.extras["knowledge"]
|
||||
|
||||
|
||||
def gpt4all_requires():
|
||||
"""
|
||||
pip install "db-gpt[gpt4all]"
|
||||
"""
|
||||
setup_spec.extras["gpt4all"] = ["gpt4all"]
|
||||
|
||||
|
||||
def default_requires():
|
||||
"""
|
||||
pip install "db-gpt[default]"
|
||||
"""
|
||||
setup_spec.extras["default"] = [
|
||||
"tokenizers==0.13.2",
|
||||
"accelerate>=0.20.3",
|
||||
"sentence-transformers",
|
||||
"protobuf==3.20.3",
|
||||
]
|
||||
setup_spec.extras["default"] += setup_spec.extras["framework"]
|
||||
setup_spec.extras["default"] += setup_spec.extras["knowledge"]
|
||||
setup_spec.extras["default"] += setup_spec.extras["torch"]
|
||||
setup_spec.extras["default"] += setup_spec.extras["quantization"]
|
||||
|
||||
|
||||
def all_requires():
|
||||
@ -335,20 +407,23 @@ def all_requires():
|
||||
|
||||
|
||||
def init_install_requires():
|
||||
setup_spec.install_requires += parse_requirements("requirements.txt")
|
||||
setup_spec.install_requires += setup_spec.extras["torch"]
|
||||
setup_spec.install_requires += setup_spec.extras["quantization"]
|
||||
setup_spec.install_requires += setup_spec.extras["core"]
|
||||
print(f"Install requires: \n{','.join(setup_spec.install_requires)}")
|
||||
|
||||
|
||||
core_requires()
|
||||
torch_requires()
|
||||
knowledge_requires()
|
||||
llama_cpp_requires()
|
||||
quantization_requires()
|
||||
|
||||
all_vector_store_requires()
|
||||
all_datasource_requires()
|
||||
openai_requires()
|
||||
gpt4all_requires()
|
||||
|
||||
# must be last
|
||||
default_requires()
|
||||
all_requires()
|
||||
init_install_requires()
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user