获取 IBM Discovery 的文档名称
Get document name of IBM Discovery
我已经集成了Watson Discovery
和Watson Assistant
,所以用户可以从助手查询Discovery文档。截至目前,我正在显示具有最高 passage_score 的段落。现在我想显示从哪个文档中获取该段落的文档名称。下面是我的 Node.js 代码。
function main(params) {
const DiscoveryV1 = require('watson-developer-cloud/discovery/v1');
return new Promise(function (resolve, reject) {
var discovery = new DiscoveryV1({
url: 'https://gateway-lon.watsonplatform.net/discovery/api',
iam_apikey:'vvvvvvvvvv', /* watson discovery api key */
version: '2018-12-03'
});
discovery.query(
{environment_id: 'vvvvvv', /* watson discovery environment id */
collection_id: 'vvvvvvvvvv', /* watson discovery collection id */
natural_language_query: params.message,
passages: 'true'
}, function(err, data) {
if (err) {
return reject(err);
}
return resolve(data.passages[1]);
});
});
}
有人可以建议修改以显示文档名称吗?
@msr_003
有两种方法可以处理这个问题。在段落响应中 return 编辑了提取段落的文档的 document_id
。段落响应的 document_id
字段映射到查询响应中 returned 文档的 id
字段。您可以查找文档响应的 extracted_metadata.filename
字段,其中 document_id
(段落的)= id
(它来自的文档的)。诚然,同一个字段被两种不同的引用方式令人困惑。
另请注意,查询响应中 returned 的文档数量会影响文章来源的文档是否确实 returned。例如,假设您 return 5 个段落,并选择 return 5 个文件。 returned 中的一个或多个段落很可能来自不在 returned 的前 5 个文档中的文档。如果发生这种情况,您可以 return 在查询响应中包含更多文档,以帮助防止这种情况发生。因此,例如,当您 return 5 个段落时,return 前 100 个文档有助于防止这种情况发生。
您可以做的另一件事是使用文档详细信息 API https://cloud.ibm.com/apidocs/discovery#get-document-details 获取段落来源文档的详细信息。虽然这需要第二次 API 调用并且会更慢,但它消除了原始查询结果中未 return 文档的可能性。
我已经集成了Watson Discovery
和Watson Assistant
,所以用户可以从助手查询Discovery文档。截至目前,我正在显示具有最高 passage_score 的段落。现在我想显示从哪个文档中获取该段落的文档名称。下面是我的 Node.js 代码。
function main(params) {
const DiscoveryV1 = require('watson-developer-cloud/discovery/v1');
return new Promise(function (resolve, reject) {
var discovery = new DiscoveryV1({
url: 'https://gateway-lon.watsonplatform.net/discovery/api',
iam_apikey:'vvvvvvvvvv', /* watson discovery api key */
version: '2018-12-03'
});
discovery.query(
{environment_id: 'vvvvvv', /* watson discovery environment id */
collection_id: 'vvvvvvvvvv', /* watson discovery collection id */
natural_language_query: params.message,
passages: 'true'
}, function(err, data) {
if (err) {
return reject(err);
}
return resolve(data.passages[1]);
});
});
}
有人可以建议修改以显示文档名称吗?
@msr_003
有两种方法可以处理这个问题。在段落响应中 return 编辑了提取段落的文档的 document_id
。段落响应的 document_id
字段映射到查询响应中 returned 文档的 id
字段。您可以查找文档响应的 extracted_metadata.filename
字段,其中 document_id
(段落的)= id
(它来自的文档的)。诚然,同一个字段被两种不同的引用方式令人困惑。
另请注意,查询响应中 returned 的文档数量会影响文章来源的文档是否确实 returned。例如,假设您 return 5 个段落,并选择 return 5 个文件。 returned 中的一个或多个段落很可能来自不在 returned 的前 5 个文档中的文档。如果发生这种情况,您可以 return 在查询响应中包含更多文档,以帮助防止这种情况发生。因此,例如,当您 return 5 个段落时,return 前 100 个文档有助于防止这种情况发生。
您可以做的另一件事是使用文档详细信息 API https://cloud.ibm.com/apidocs/discovery#get-document-details 获取段落来源文档的详细信息。虽然这需要第二次 API 调用并且会更慢,但它消除了原始查询结果中未 return 文档的可能性。