dify icon indicating copy to clipboard operation
dify copied to clipboard

MilvusException: (code=1100, message=failed to create query plan: cannot parse expression: metadata["document_id"]

Open 309299817 opened this issue 9 months ago • 2 comments

Self Checks

  • [x] This is only for bug report, if you would like to ask a question, please head to Discussions.
  • [x] I have searched for existing issues search for existing issues, including closed ones.
  • [x] I confirm that I am using English to submit this report (我已阅读并同意 Language Policy).
  • [x] [FOR CHINESE USERS] 请务必使用英文提交 Issue,否则会被关闭。谢谢!:)
  • [x] Please do not modify this template :) and fill in all the required fields.

Dify version

1.1.3

Cloud or Self Hosted

Self Hosted (Docker)

Steps to reproduce

1、当知识库检索中设置了元数据过滤 2、我的向量库选择的是milvus 3、程序就会报错:ValueError: <MilvusException: (code=1100, message=failed to create query plan: cannot parse expression: metadata["document_id"] in ('0a07e429-c172-4a48-bcc9-a4a98cbb7776', 'b93d050a-3021-451a-9300-7864cf05aee2'), error: line 1:66 mismatched input ',' expecting ')': invalid parameter)>

✔️ Expected Behavior

Modify the source code of line 181 in retrievval_Service. py

vector = Vector(dataset=dataset)

构建过滤条件

filter_conditions = {"group_id": [dataset.id]} if document_ids_filter: filter_conditions["document_id"] = document_ids_filter

documents = vector.search_by_vector( query, search_type="similarity_score_threshold", top_k=top_k, score_threshold=score_threshold, filter=filter_conditions, )

documents = vector.search_by_vector(

query,

search_type="similarity_score_threshold",

top_k=top_k,

score_threshold=score_threshold,

filter={"group_id": [dataset.id]},

document_ids_filter=document_ids_filter,

)

❌ Actual Behavior

No response

309299817 avatar Apr 01 '25 07:04 309299817