Mobi Python SDK

更新时间: 2026-01-13 17:53:01

Mobi Python SDK 是一种在集成流中使用魔笔相关服务的工具包。使用 Mobi Python SDK 需要先创建 API Key,关于如何创建 API Key 可以参考管理 API Key

配置 API Key

在集成流的左侧点击全局设置选择空间的API Key进行配置

image

使用 Mobi Python SDK

通过 Mobi Python SDK 列出文件夹下的文件内容

# 引入 MobiClient 用于调用服务
from mobi_baas.client import MobiClient
# 引入请求数据模型
from mobi_baas.models import PageFilesByFolderRequest
folder_id = "your_folder_id"
client = MobiClient()
# 通过MobiCient调用 page_files_by_folder 服务列出指定文件夹下的文件
resp = client.page_files_by_folder(PageFilesByFolderRequest(folder_id=folder_id, page_size=500, page_number=1))
# 通过get_data()获取响应类中的数据,通过 items 获取所有文件列表
if resp.success:
    files = resp.get_data()["items"]
    return files
else:
    return "Page files by folder failed, reason: " + resp.get_data()['message']

运行结果:

image

通过 Mobi Python SDK 根据文件 ID 删除文件

# 引入 MobiClient 用于调用服务
from mobi_baas.client import MobiClient
# 引入请求数据模型
from mobi_baas.models import DeleteFileRequest
# 要删除的文件 ID
file_id = "your_file_id"
client = MobiClient()
# 调用 delete_file 接口删除文件
resp = client.delete_file(DeleteFileRequest(file_id=file_id))
if resp.success:
    return "File deleted"
else:
    return "File delete failed, reason: " + resp.get_data()['message']

运行结果:

image

通过 Mobi Python SDK 上传文件到魔笔的文件系统

# 引入 MobiClient 用于调用服务
import asyncio

from mobi_baas.client import MobiClient
# 引入请求数据模型
from mobi_baas.models import FileUploadRequest

# 生成示例的demo.txt文件
with open("demo.txt", 'w', encoding='utf-8') as file:
    file.write('这是一个demo示例文件。\n')
    file.write('欢迎使用Python文件操作功能!\n')
client = MobiClient()
# 构造上传文件请求
file_request = FileUploadRequest(
        name="file_name_demo",           # 文件名:上传后的文件名称
        data=open("demo.txt", "rb"),     # 文件数据:以二进制只读模式打开的文件对象
        folder_name="folder_name_demo",  # 可选文件夹名称:指定文件上传到的目标文件夹名称,不存在会创建
)
# 调用upload_file_to_mobi方法异步上传文件
result = asyncio.run(client.upload_file_to_mobi(file_request))
file_id = ""
if result.success:
    file_id = result.get_data().get("fileId", "")
    return file_id
else:
    return "File upload failed"+ result.get_data()['message']

运行结果:

image

通过 Mobi Python SDK 调用内置数据库集成操作

# 引入 MobiClient 用于调用服务
from mobi_baas.client import MobiClient
# 引入请求数据模型
from mobi_baas.models import SystemPgConnector

client = MobiClient()
# 示例sql
sql = "SELECT now();"
# 构造集成操作请求
connector_request = SystemPgConnector(
    sql=sql
)
resp = client.invoke_connector(connector_request)
if resp.success:
    return resp.get_data()
else:
    return "invoke failed"+resp.get_data()['message']

运行结果:

image

通过 Mobi Python SDK 调用HTTP集成操作

魔笔HTTP资源配置:

image

资源ID:image

# 引入 MobiClient 用于调用服务
from mobi_baas.client import MobiClient
# 引入请求数据模型
from mobi_baas.models import HttpConnector

client = MobiClient()

# 构造集成操作请求
connector_request = HttpConnector(
        resource_id='175376942956017',
        url='/index/create',
        method='POST',
        header= {
                'x-acs-version': '2023-12-29',
                'x-acs-action': 'CreateIndex',
        },
        body={
            "Name": "新建知识库demo",
            "StructureType": "unstructured",
            "SinkType": "BUILT_IN"
        }
)
resp = client.invoke_connector(connector_request)
if resp.success:
    return resp.get_data()
else:
    return "invoke failed"+resp.get_data()['message']

运行结果:

image

通过 Mobi Python SDK 调用 OpenAPI 集成操作

魔笔 OpenAPI 资源配置:

image

资源ID:

image

对于OpenAPIConnnector,其中包含的字段如下:

  • resource_id: 魔笔集成资源的 id

  • action: OpenAPI 请求的操作名称

  • method: 大写的 HTTP 方法

  • path: 请求路径,可以包含参数,参数使用{var1}的格式

  • path_params: Dict 类型,对应填写 path 中参数的键值对

  • query_params: Dict 类型,url 中的查询参数的键值对

  • body_params: Dict 类型, body 参数键值对

  • header_params: Dict 类型,http 请求 header 中的参数键值对

下面以百炼 ListCategory为例:

image

  1. action: ListCategory

  2. path: /{WorkspaceId}/datacenter/categories

  3. methd: POST

  4. path_params: {"WorkspaceId": "bailianWorkspaceId"}

  5. body_params: {"CategoryType": "UNSTRUCTURED"}

说明

对于请求参数,需要确定是 query 参数或者 body 参数,如果不能确定请询问相关云产品确定 API 参数对应的 HTTP 请求的位置。

# 引入 MobiClient 用于调用服务
from mobi_baas.client import MobiClient
# 引入请求数据模型
from mobi_baas.models import OpenAPIConnector

client = MobiClient()

# 构造集成操作请求,需要参照官方文档,填写action和path,以及对应位置的参数
# 下面构造一个百炼请求作为示例,文档可以参考https://help.aliyun.com/zh/model-studio/api-bailian-2023-12-29-listcategory
connector_request = OpenAPIConnector(
    resource_id='174305288320562',
    action= "ListCategory",
    method="POST",
    path = "/{WorkspaceId}/datacenter/categories",
    path_params= {"WorkspaceId": "bailianWorkspaceId"},  #路径参数,替换路径中的{var1}格式的参数
    query_params= None, #查询参数
    body_params= {"CategoryType": "UNSTRUCTURED"}, #body参数
    header_params= None #header参数
)
resp = client.invoke_connector(connector_request)
if resp.success:
    return resp.get_data()
else:
    return "invoke failed"+resp.get_data()['message']

运行结果:

image

上一篇: 用户流程操作 下一篇: 集成流运行日志