mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-19 13:23:35 +00:00
community[patch]: Add ID field back to Azure AI Search results (#25828)
Commandeering https://github.com/langchain-ai/langchain/pull/23243 as maintainers don't have ability to modify that PR. Fixes https://github.com/langchain-ai/langchain/issues/22827 --------- Co-authored-by: Ming Quah <fleetadmiralbutter@icloud.com>
This commit is contained in:
parent
9fa172bc26
commit
afe8ccaaa6
@ -1283,6 +1283,11 @@ class AzureSearch(VectorStore):
|
|||||||
Document(
|
Document(
|
||||||
page_content=result.pop(FIELDS_CONTENT),
|
page_content=result.pop(FIELDS_CONTENT),
|
||||||
metadata={
|
metadata={
|
||||||
|
**(
|
||||||
|
{FIELDS_ID: result.pop(FIELDS_ID)}
|
||||||
|
if FIELDS_ID in result
|
||||||
|
else {}
|
||||||
|
),
|
||||||
**(
|
**(
|
||||||
json.loads(result[FIELDS_METADATA])
|
json.loads(result[FIELDS_METADATA])
|
||||||
if FIELDS_METADATA in result
|
if FIELDS_METADATA in result
|
||||||
@ -1362,6 +1367,11 @@ class AzureSearch(VectorStore):
|
|||||||
Document(
|
Document(
|
||||||
page_content=result.pop(FIELDS_CONTENT),
|
page_content=result.pop(FIELDS_CONTENT),
|
||||||
metadata={
|
metadata={
|
||||||
|
**(
|
||||||
|
{FIELDS_ID: result.pop(FIELDS_ID)}
|
||||||
|
if FIELDS_ID in result
|
||||||
|
else {}
|
||||||
|
),
|
||||||
**(
|
**(
|
||||||
json.loads(result[FIELDS_METADATA])
|
json.loads(result[FIELDS_METADATA])
|
||||||
if FIELDS_METADATA in result
|
if FIELDS_METADATA in result
|
||||||
@ -1752,16 +1762,26 @@ def _reorder_results_with_maximal_marginal_relevance(
|
|||||||
|
|
||||||
|
|
||||||
def _result_to_document(result: Dict) -> Document:
|
def _result_to_document(result: Dict) -> Document:
|
||||||
|
# Fields metadata
|
||||||
|
if FIELDS_METADATA in result:
|
||||||
|
if isinstance(result[FIELDS_METADATA], dict):
|
||||||
|
fields_metadata = result[FIELDS_METADATA]
|
||||||
|
else:
|
||||||
|
fields_metadata = json.loads(result[FIELDS_METADATA])
|
||||||
|
else:
|
||||||
|
fields_metadata = {
|
||||||
|
key: value for key, value in result.items() if key != FIELDS_CONTENT_VECTOR
|
||||||
|
}
|
||||||
|
# IDs
|
||||||
|
if FIELDS_ID in result:
|
||||||
|
fields_id = {FIELDS_ID: result.pop(FIELDS_ID)}
|
||||||
|
else:
|
||||||
|
fields_id = {}
|
||||||
return Document(
|
return Document(
|
||||||
page_content=result.pop(FIELDS_CONTENT),
|
page_content=result.pop(FIELDS_CONTENT),
|
||||||
metadata=(
|
metadata={
|
||||||
result[FIELDS_METADATA]
|
**fields_id,
|
||||||
if isinstance(result[FIELDS_METADATA], dict)
|
**fields_metadata,
|
||||||
else json.loads(result[FIELDS_METADATA])
|
|
||||||
)
|
|
||||||
if FIELDS_METADATA in result
|
|
||||||
else {
|
|
||||||
key: value for key, value in result.items() if key != FIELDS_CONTENT_VECTOR
|
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user