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)
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
|
354 |
-
|
|
|
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
|
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:
|