From 201bbef7c0d7e604051e1af7350da0b0a20352a3 Mon Sep 17 00:00:00 2001 From: Jin Hai Date: Thu, 14 Nov 2024 15:51:30 +0800 Subject: [PATCH] Print version when RAGFlow server startup (#3393) ### What problem does this PR solve? Print version when RAGFlow server startup ### Type of change - [x] New Feature (non-breaking change which adds functionality) --------- Signed-off-by: jinhai Co-authored-by: Kevin Hu --- .github/workflows/tests.yml | 4 ++-- README.md | 4 ++-- api/ragflow_server.py | 5 +++- api/versions.py | 28 +++++++++++++++++++++- build_docker_image.sh | 46 +++++++++++++++++++++++++++++++++++++ docker/update_version.sh | 16 +++++++++++++ 6 files changed, 97 insertions(+), 6 deletions(-) create mode 100755 build_docker_image.sh create mode 100644 docker/update_version.sh diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 38f1767a1..ff4ff47d7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -50,11 +50,11 @@ jobs: RUNNER_WORKSPACE_PREFIX=${RUNNER_WORKSPACE_PREFIX:-$HOME} cp -r ${RUNNER_WORKSPACE_PREFIX}/huggingface.co ${RUNNER_WORKSPACE_PREFIX}/nltk_data ${RUNNER_WORKSPACE_PREFIX}/libssl*.deb ${RUNNER_WORKSPACE_PREFIX}/tika-server*.jar* . sudo docker pull ubuntu:24.04 - sudo docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-slim . + sudo ./build_docker_image.sh slim - name: Build ragflow:dev run: | - sudo docker build -f Dockerfile -t infiniflow/ragflow:dev . + sudo ./build_docker_image.sh full - name: Start ragflow:dev-slim run: | diff --git a/README.md b/README.md index 82229273c..96ddf6f33 100644 --- a/README.md +++ b/README.md @@ -274,7 +274,7 @@ git clone https://github.com/infiniflow/ragflow.git cd ragflow/ pip3 install huggingface-hub nltk python3 download_deps.py -docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-slim . +build_docker_image.sh slim ``` ## 🔧 Build a Docker image including embedding models @@ -286,7 +286,7 @@ git clone https://github.com/infiniflow/ragflow.git cd ragflow/ pip3 install huggingface-hub nltk python3 download_deps.py -docker build -f Dockerfile -t infiniflow/ragflow:dev . +build_docker_image.sh full ``` ## 🔨 Launch service from source for development diff --git a/api/ragflow_server.py b/api/ragflow_server.py index da3dff3b0..00cb17042 100644 --- a/api/ragflow_server.py +++ b/api/ragflow_server.py @@ -35,7 +35,7 @@ from api.utils.log_utils import logger from api.db.db_models import init_database_tables as init_web_db from api.db.init_data import init_web_data -from api.versions import get_versions +from api.versions import get_versions, RAGFLOW_VERSION_INFO def update_progress(): @@ -56,6 +56,9 @@ if __name__ == '__main__': /_/ |_|/_/ |_|\____//_/ /_/ \____/ |__/|__/ """) + logger.info( + f'RAGFlow version: {RAGFLOW_VERSION_INFO}' + ) logger.info( f'project base: {utils.file_utils.get_project_base_directory()}' ) diff --git a/api/versions.py b/api/versions.py index 859e75693..54d151b34 100644 --- a/api/versions.py +++ b/api/versions.py @@ -15,6 +15,7 @@ # import dotenv import typing +import subprocess def get_versions() -> typing.Mapping[str, typing.Any]: @@ -23,4 +24,29 @@ def get_versions() -> typing.Mapping[str, typing.Any]: def get_rag_version() -> typing.Optional[str]: - return get_versions().get("RAGFLOW_IMAGE", "infiniflow/ragflow:dev").split(":")[-1] \ No newline at end of file + return get_versions().get("RAGFLOW_IMAGE", "infiniflow/ragflow:dev").split(":")[-1] + + +RAGFLOW_VERSION_INFO = "dev" + + +def get_closest_tag_and_count(): + # Get the current commit hash + commit_id = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).strip().decode('utf-8') + # Get the closest tag + closest_tag = subprocess.check_output(['git', 'describe', '--tags', '--abbrev=0']).strip().decode('utf-8') + # Get the commit hash of the closest tag + closest_tag_commit = subprocess.check_output(['git', 'rev-list', '-n', '1', closest_tag]).strip().decode('utf-8') + # Get the commit count since the closest tag + process = subprocess.Popen(['git', 'rev-list', '--count', f'{closest_tag}..HEAD'], stdout=subprocess.PIPE) + commits_count, _ = process.communicate() + commits_count = int(commits_count.strip()) + + if commits_count == 0: + return closest_tag + else: + return f"{commit_id}({closest_tag}~{commits_count})" + + +if RAGFLOW_VERSION_INFO == 'dev': + RAGFLOW_VERSION_INFO = get_closest_tag_and_count() diff --git a/build_docker_image.sh b/build_docker_image.sh new file mode 100755 index 000000000..4fbef67d9 --- /dev/null +++ b/build_docker_image.sh @@ -0,0 +1,46 @@ +#!/bin/bash + +print_help() { + echo "Usage: $0