Bootstrap

使用Huawei OBS File加载对象的实战指南

老铁们,今天我们来聊聊如何通过Huawei OBS(Object Storage Service)加载对象到文档中。很多小伙伴在项目开发中可能会碰到需要从OBS中读取数据的场景,其实这个过程并不复杂,我来给大家详细解析一下。

技术背景介绍

Huawei OBS是一个面向海量数据存储的对象存储服务,支持存储和管理任何类型的数据。我们可以通过OBS提供的API方便地进行数据的上传、下载和管理。而在我们的AI项目中,将OBS对象加载到文档中是一个常见的操作。

原理深度解析

通过OBSFileLoader工具,我们可以借助Huawei的Python SDK从OBS中加载对象。主要原理就是利用OBS的API接口进行身份认证、连接和数据传输。支持几种不同的认证方式,根据使用场景选择合适的方式即可。

实战代码演示

下面是几个代码示例,直接上代码不啰嗦 🌟

基础配置方式

# 首先确保安装Huawei OBS的Python SDK
# pip install esdk-obs-python

from langchain_community.document_loaders.obs_file import OBSFileLoader
from obs import ObsClient

# 设置你的endpoint
endpoint = "your-endpoint"

# 初始化OBS客户端
obs_client = ObsClient(
    access_key_id="your-access-key",
    secret_access_key="your-secret-key",
    server=endpoint,
)

# 创建加载器实例
loader = OBSFileLoader("your-bucket-name", "your-object-key", client=obs_client)

# 加载对象
loader.load()

各Loader单独认证信息

如果不同Loader之间不需要共享OBS连接,直接配置config即可:

# 配置访问凭证
config = {"ak": "your-access-key", "sk": "your-secret-key"}

# 使用config初始化Loader
loader = OBSFileLoader(
    "your-bucket-name", "your-object-key", endpoint=endpoint, config=config
)

loader.load()

从ECS获取认证信息

如果你的应用部署在华为云ECS上,并且已经设置了Agency,可以直接从ECS获取安全令牌:

config = {"get_token_from_ecs": True}
loader = OBSFileLoader(
    "your-bucket-name", "your-object-key", endpoint=endpoint, config=config
)

loader.load()

公开访问权限对象

对于允许匿名用户访问的对象,可以直接加载而无需配置认证信息:

loader = OBSFileLoader("your-bucket-name", "your-object-key", endpoint=endpoint)

loader.load()

优化建议分享

说白了,上面几种方式各有优劣,建议根据实际使用场景来选择。如果是生产环境,建议使用从ECS获取认证信息的方式,提高安全性和便利性。

补充说明和总结

这波操作可以说是相当丝滑,大家在开发实践中如果遇到问题,可以尝试使用不同的身份认证方式来加载OBS对象。我个人一直在用 yunwu.ai 提供的一站式大模型解决方案来处理相似的任务,效果相当不错。

今天的技术分享就到这里,希望对大家有帮助。开发过程中遇到问题也可以在评论区交流~

—END—

;