首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用沃森发现服务获取文档文件url?

如何使用沃森发现服务获取文档文件url?
EN

Stack Overflow用户
提问于 2017-01-28 12:48:31
回答 2查看 1.8K关注 0票数 2

我看不出使用可用的api文档来解决这个问题。

它也不能在网络控制台上使用。

是否可以使用沃森发现服务获取文件url

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-01-30 16:35:15

如果需要存储原始源/文件URL,可以将其作为字段包含在探索服务中的文档中,然后在需要时可以查询该字段。

票数 3
EN

Stack Overflow用户

发布于 2018-10-18 02:03:26

我也很难处理这个请求,但最终通过将Python绑定到沃森发现中来使其正常工作。在线文档和API引用非常糟糕;下面是我用来让它正常工作的内容:

(假设您有一个沃森发现服务,并有一个创建的集合):

代码语言:javascript
运行
复制
# Programmatic upload and retrieval of documents and metadata with Watson Discovery

from watson_developer_cloud import DiscoveryV1
import os
import json

discovery = DiscoveryV1(
    version='2017-11-07',
    iam_apikey='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
    url='https://gateway-syd.watsonplatform.net/discovery/api'
)

environments = discovery.list_environments().get_result()
print(json.dumps(environments, indent=2))

这将提供您的环境ID。现在将其附加到您的代码中:

代码语言:javascript
运行
复制
collections = discovery.list_collections('{environment-id}').get_result()
print(json.dumps(collections, indent=2))

这将显示以编程方式将文档上载到的集合ID。您应该有一个要上传的文档(在我的例子中,是一个MS文档),以及它从您自己的源文档系统附带的URL。我将使用一个微不足道的虚构例子。

注意:文档并没有告诉您在open语句的末尾追加“rb”,但是在上传Word文档时需要这样做,如下面的示例所示。原始文本/ HTML文档可以在没有rb参数的情况下上传。

代码语言:javascript
运行
复制
url = {"source_url":"http://mysite/dis030.docx"}
with open(os.path.join(os.getcwd(), '{path to your document folder with trailing / }', 'dis030.docx'), 'rb') as fileinfo:
    add_doc = discovery.add_document('{environment-id}', '{collections-id}', metadata=json.dumps(url), file=fileinfo).get_result()
    print(json.dumps(add_doc, indent=2))
    print(add_doc["document_id"])

注意将元数据设置为JSON字典,然后在参数中使用json.dumps对其进行编码。到目前为止,我只想存储原始的源URL,但是您可以根据自己的用例需要使用其他参数来扩展它。

这个对发现的调用为您提供了文档ID。

现在,您可以使用类似于发现查询的内容查询集合并提取元数据:

代码语言:javascript
运行
复制
my_query = discovery.query('{environment-id}', '{collection-id}', natural_language_query="chlorine safety")
print(json.dumps(my_query.result["results"][0]["metadata"], indent=2))

注意-我只是从返回的总体结果中提取存储的元数据--如果您只是拥有: print(my_query),您将从发现得到完整的响应.但是..。要识别您自己的自定义元数据,需要做很多工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41909962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档