From 9348616659526fcd8fff95c5fc55f498b0e01aed Mon Sep 17 00:00:00 2001 From: Zhichang Yu Date: Mon, 25 Nov 2024 14:09:42 +0800 Subject: [PATCH] Handle infinity empty response (#3627) ### What problem does this PR solve? Handle infinity empty response. Close #3623 Show version in docker build log ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) --- .github/workflows/tests.yml | 8 ++++++-- Dockerfile | 1 + Dockerfile.slim | 1 + rag/utils/infinity_conn.py | 15 +++++++++++++-- 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 2bddf60f7..c7d53763c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -42,19 +42,23 @@ jobs: - name: Ensure workspace ownership run: echo "chown -R $USER $GITHUB_WORKSPACE" && sudo chown -R $USER $GITHUB_WORKSPACE + # https://github.com/actions/checkout/issues/1781 - name: Check out code uses: actions/checkout@v4 + with: + fetch-depth: 0 + fetch-tags: true - name: Build ragflow:dev-slim run: | 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* ${RUNNER_WORKSPACE_PREFIX}/chrome* ${RUNNER_WORKSPACE_PREFIX}/cl100k_base.tiktoken . sudo docker pull ubuntu:22.04 - sudo docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-slim . + sudo docker build --progress=plain -f Dockerfile.slim -t infiniflow/ragflow:dev-slim . - name: Build ragflow:dev run: | - sudo docker build -f Dockerfile -t infiniflow/ragflow:dev . + sudo docker build --progress=plain -f Dockerfile -t infiniflow/ragflow:dev . - name: Start ragflow:dev-slim run: | diff --git a/Dockerfile b/Dockerfile index 1e36f0fd9..3595720e0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -75,6 +75,7 @@ RUN current_commit=$(git rev-parse --short HEAD); \ else \ version_info="$version_info full"; \ fi; \ + echo "RAGFlow version: $version_info"; \ echo $version_info > /ragflow/VERSION COPY web web diff --git a/Dockerfile.slim b/Dockerfile.slim index d8adffd7f..17da40f61 100644 --- a/Dockerfile.slim +++ b/Dockerfile.slim @@ -75,6 +75,7 @@ RUN current_commit=$(git rev-parse --short HEAD); \ else \ version_info="$version_info full"; \ fi; \ + echo "RAGFlow version: $version_info"; \ echo $version_info > /ragflow/VERSION COPY web web diff --git a/rag/utils/infinity_conn.py b/rag/utils/infinity_conn.py index dddb64975..08fb7c3c3 100644 --- a/rag/utils/infinity_conn.py +++ b/rag/utils/infinity_conn.py @@ -48,6 +48,17 @@ def equivalent_condition_to_str(condition: dict) -> str: return " AND ".join(cond) +def concat_dataframes(df_list: list[pl.DataFrame], selectFields: list[str]) -> pl.DataFrame: + """ + Concatenate multiple dataframes into one. + """ + if df_list: + return pl.concat(df_list) + schema = dict() + for fieldnm in selectFields: + schema[fieldnm] = str + return pl.DataFrame(schema=schema) + @singleton class InfinityConnection(DocStoreConnection): def __init__(self): @@ -289,7 +300,7 @@ class InfinityConnection(DocStoreConnection): kb_res = builder.to_pl() df_list.append(kb_res) self.connPool.release_conn(inf_conn) - res = pl.concat(df_list) + res = concat_dataframes(df_list, selectFields) logging.debug("INFINITY search tables: " + str(table_list)) return res @@ -306,7 +317,7 @@ class InfinityConnection(DocStoreConnection): kb_res = table_instance.output(["*"]).filter(f"id = '{chunkId}'").to_pl() df_list.append(kb_res) self.connPool.release_conn(inf_conn) - res = pl.concat(df_list) + res = concat_dataframes(df_list, ["id"]) res_fields = self.getFields(res, res.columns) return res_fields.get(chunkId, None)