@ msr_003 Есть два способа справиться с этим.document_id
документа, где был извлечен отрывок, возвращается в ответе отрывка.Поле document_id
ответа прохождения соответствует полю id
документов, возвращаемых в ответе на запрос.Вы можете посмотреть в поле extracted_metadata.filename
ответа документа, где document_id
(отрывка) = id
(документа, из которого он поступил).По общему признанию сбивает с толку, что одно и то же поле упоминается двумя разными способами.
Также обратите внимание, что количество документов, возвращаемых в вашем ответе на запрос, будет влиять на то, был ли возвращен документ, из которого получен отрывок, или нет.Например, скажем, вы вернули 5 отрывков и решили вернуть 5 документов.Вполне возможно, что один или несколько возвращенных отрывков взяты из документов, которые не входят в топ-5 возвращаемых документов.Если это произойдет, вы можете вернуть большее количество документов в ответе на запрос, чтобы предотвратить это.Так, например, верните 100 лучших документов, когда вы вернетесь 5 отрывков, чтобы предотвратить это.
Другая вещь, которую вы можете сделать, это использовать API деталей документа https://cloud.ibm.com/apidocs/discovery#get-document-details, чтобы получить подробную информацию одокумент, откуда пришел отрывок.Хотя это займет второй вызов API и будет медленнее, это исключает вероятность того, что документ не будет возвращен в исходном результате запроса.