zhichyu commited on
Commit
e033370
·
1 Parent(s): 1b1a5b7

Fixed retrieval TypeError: unhashable type: 'list' (#3966)

Browse files

### What problem does this PR solve?

Fixed retrieval TypeError: unhashable type: 'list'

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

Files changed (1) hide show
  1. rag/utils/infinity_conn.py +5 -4
rag/utils/infinity_conn.py CHANGED
@@ -350,8 +350,9 @@ class InfinityConnection(DocStoreConnection):
350
  assert "_id" not in d
351
  assert "id" in d
352
  for k, v in d.items():
353
- if k.endswith("_kwd") and isinstance(v, list):
354
- d[k] = " ".join(v)
 
355
  elif k == 'kb_id':
356
  if isinstance(d[k], list):
357
  d[k] = d[k][0] # since d[k] is a list, but we need a str
@@ -443,9 +444,9 @@ class InfinityConnection(DocStoreConnection):
443
  v = res[fieldnm][i]
444
  if isinstance(v, Series):
445
  v = list(v)
446
- elif fieldnm.endswith("_kwd"):
447
  assert isinstance(v, str)
448
- v = v.split()
449
  elif fieldnm == "position_int":
450
  assert isinstance(v, str)
451
  if v:
 
350
  assert "_id" not in d
351
  assert "id" in d
352
  for k, v in d.items():
353
+ if k in ["important_kwd", "question_kwd", "entities_kwd"]:
354
+ assert isinstance(v, list)
355
+ d[k] = "###".join(v)
356
  elif k == 'kb_id':
357
  if isinstance(d[k], list):
358
  d[k] = d[k][0] # since d[k] is a list, but we need a str
 
444
  v = res[fieldnm][i]
445
  if isinstance(v, Series):
446
  v = list(v)
447
+ elif fieldnm in ["important_kwd", "question_kwd", "entities_kwd"]:
448
  assert isinstance(v, str)
449
+ v = [kwd for kwd in v.split("###") if kwd]
450
  elif fieldnm == "position_int":
451
  assert isinstance(v, str)
452
  if v: