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