zhichyu commited on
Commit
1b46744
·
1 Parent(s): 00c857e

Handle infinity empty response (#3627)

Browse files

### 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 CHANGED
@@ -42,19 +42,23 @@ jobs:
42
  - name: Ensure workspace ownership
43
  run: echo "chown -R $USER $GITHUB_WORKSPACE" && sudo chown -R $USER $GITHUB_WORKSPACE
44
 
 
45
  - name: Check out code
46
  uses: actions/checkout@v4
 
 
 
47
 
48
  - name: Build ragflow:dev-slim
49
  run: |
50
  RUNNER_WORKSPACE_PREFIX=${RUNNER_WORKSPACE_PREFIX:-$HOME}
51
  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 .
52
  sudo docker pull ubuntu:22.04
53
- sudo docker build -f Dockerfile.slim -t infiniflow/ragflow:dev-slim .
54
 
55
  - name: Build ragflow:dev
56
  run: |
57
- sudo docker build -f Dockerfile -t infiniflow/ragflow:dev .
58
 
59
  - name: Start ragflow:dev-slim
60
  run: |
 
42
  - name: Ensure workspace ownership
43
  run: echo "chown -R $USER $GITHUB_WORKSPACE" && sudo chown -R $USER $GITHUB_WORKSPACE
44
 
45
+ # https://github.com/actions/checkout/issues/1781
46
  - name: Check out code
47
  uses: actions/checkout@v4
48
+ with:
49
+ fetch-depth: 0
50
+ fetch-tags: true
51
 
52
  - name: Build ragflow:dev-slim
53
  run: |
54
  RUNNER_WORKSPACE_PREFIX=${RUNNER_WORKSPACE_PREFIX:-$HOME}
55
  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 .
56
  sudo docker pull ubuntu:22.04
57
+ sudo docker build --progress=plain -f Dockerfile.slim -t infiniflow/ragflow:dev-slim .
58
 
59
  - name: Build ragflow:dev
60
  run: |
61
+ sudo docker build --progress=plain -f Dockerfile -t infiniflow/ragflow:dev .
62
 
63
  - name: Start ragflow:dev-slim
64
  run: |
Dockerfile CHANGED
@@ -75,6 +75,7 @@ RUN current_commit=$(git rev-parse --short HEAD); \
75
  else \
76
  version_info="$version_info full"; \
77
  fi; \
 
78
  echo $version_info > /ragflow/VERSION
79
 
80
  COPY web web
 
75
  else \
76
  version_info="$version_info full"; \
77
  fi; \
78
+ echo "RAGFlow version: $version_info"; \
79
  echo $version_info > /ragflow/VERSION
80
 
81
  COPY web web
Dockerfile.slim CHANGED
@@ -75,6 +75,7 @@ RUN current_commit=$(git rev-parse --short HEAD); \
75
  else \
76
  version_info="$version_info full"; \
77
  fi; \
 
78
  echo $version_info > /ragflow/VERSION
79
 
80
  COPY web web
 
75
  else \
76
  version_info="$version_info full"; \
77
  fi; \
78
+ echo "RAGFlow version: $version_info"; \
79
  echo $version_info > /ragflow/VERSION
80
 
81
  COPY web web
rag/utils/infinity_conn.py CHANGED
@@ -48,6 +48,17 @@ def equivalent_condition_to_str(condition: dict) -> str:
48
  return " AND ".join(cond)
49
 
50
 
 
 
 
 
 
 
 
 
 
 
 
51
  @singleton
52
  class InfinityConnection(DocStoreConnection):
53
  def __init__(self):
@@ -289,7 +300,7 @@ class InfinityConnection(DocStoreConnection):
289
  kb_res = builder.to_pl()
290
  df_list.append(kb_res)
291
  self.connPool.release_conn(inf_conn)
292
- res = pl.concat(df_list)
293
  logging.debug("INFINITY search tables: " + str(table_list))
294
  return res
295
 
@@ -306,7 +317,7 @@ class InfinityConnection(DocStoreConnection):
306
  kb_res = table_instance.output(["*"]).filter(f"id = '{chunkId}'").to_pl()
307
  df_list.append(kb_res)
308
  self.connPool.release_conn(inf_conn)
309
- res = pl.concat(df_list)
310
  res_fields = self.getFields(res, res.columns)
311
  return res_fields.get(chunkId, None)
312
 
 
48
  return " AND ".join(cond)
49
 
50
 
51
+ def concat_dataframes(df_list: list[pl.DataFrame], selectFields: list[str]) -> pl.DataFrame:
52
+ """
53
+ Concatenate multiple dataframes into one.
54
+ """
55
+ if df_list:
56
+ return pl.concat(df_list)
57
+ schema = dict()
58
+ for fieldnm in selectFields:
59
+ schema[fieldnm] = str
60
+ return pl.DataFrame(schema=schema)
61
+
62
  @singleton
63
  class InfinityConnection(DocStoreConnection):
64
  def __init__(self):
 
300
  kb_res = builder.to_pl()
301
  df_list.append(kb_res)
302
  self.connPool.release_conn(inf_conn)
303
+ res = concat_dataframes(df_list, selectFields)
304
  logging.debug("INFINITY search tables: " + str(table_list))
305
  return res
306
 
 
317
  kb_res = table_instance.output(["*"]).filter(f"id = '{chunkId}'").to_pl()
318
  df_list.append(kb_res)
319
  self.connPool.release_conn(inf_conn)
320
+ res = concat_dataframes(df_list, ["id"])
321
  res_fields = self.getFields(res, res.columns)
322
  return res_fields.get(chunkId, None)
323