Skip to main content

ModelScope API Python SDK

PyPI version License Python 3.11+

一个异步、类型安全的 Python SDK,用于调用 ModelScope 开放 API。

它提供了直观的对象化接口,覆盖了合集、创空间、魔粒、用户等核心模块,让您能以 Pythonic 的方式与 ModelScope 平台交互。

✨ 特性

  • 🚀 全异步 – 基于 httpx.AsyncClient,支持高并发请求。
  • 🧩 模块化设计 – 按业务领域拆分:User、Magicube、Studio、Collection 等。
  • 📦 类型安全 – 使用 Pydantic 数据模型,提供 IDE 自动补全和校验。
  • 🔐 自动认证 – 通过环境变量或构造参数传入 API Token,自动注入请求头。
  • 🛠️ 开箱即用 – 支持 .env 配置,内置随机 UA 伪装,简化开发。

📦 安装

pip install modelscope-api

或直接从源码安装:

git clone https://github.com/Jerry-Wu-GitHub/modelscope-api.git
cd modelscope-api
pip install -e .

🚀 快速开始

1. 获取 API Token

访问 ModelScope 个人设置 生成您的 MODELSCOPE_API_TOKEN。

2. 配置环境变量(推荐)

在项目根目录创建 .env 文件:

MODELSCOPE_API_TOKEN=your_token_here

也可以直接在代码中传入:

from modelscope_api import ModelScopeClient

client = ModelScopeClient(api_key="your_token_here")

3. 基础用法

import asyncio
from modelscope_api import ModelScopeClient

async def main():
    async with ModelScopeClient() as client:
        # 获取当前用户信息
        user_info = await client.user.get_current_user_info()
        print(f"当前用户: {user_info.username}")

        # 查询魔粒余额
        balance = await client.magicube.query_magicube_balance()
        print(f"可用魔粒: {balance.available_balance}")

        # 搜索创空间
        studios = await client.studio.search_studio_infos(search="chatbot", owner="iic")
        for studio in studios:
            print(f"- {studio.display_name} ({studio.id})")

if __name__ == "__main__":
    asyncio.run(main())

📖 API 概览

SDK 的所有功能通过 ModelScopeClient 聚合,您可以通过其属性访问各子客户端:

子客户端 说明 主要方法
client.user 用户信息 get_current_user_info()
client.magicube 魔粒(积分) query_magicube_balance()
client.studio 创空间管理 search_studio_infos(), create_studio(), get_studio()
client.collection 合集管理 search_collection_infos(), create_collection(), get_collection()

每个子客户端返回的数据均为 Pydantic 模型,可直接访问属性。

详细示例:操作创空间

async def studio_example(client):
    # 创建创空间
    studio = await client.studio.create_studio(
        repo_name="my-awesome-space",
        display_name="我的炫酷空间",
        visibility="public",
        sdk_type="gradio",
        hardware="platform/2v-cpu-16g-mem"
    )
    print(f"创建成功: {studio.id}")

    # 部署
    runtime = await studio.deploy(timeout=30)
    print(f"部署状态: {runtime.status}")

    # 查看日志
    logs = await studio.get_logs("run", page_size=50)
    for line in logs.logs:
        print(line)

    # 添加环境变量
    await studio.variables.add("MY_KEY", "my_value")

详细示例:操作合集

async def collection_example(client):
    # 创建合集
    collection = await client.collection.create_collection(
        title="我的收藏",
        visibility="private"
    )

    # 添加条目(模型)
    failed = await collection.items.add_items([
        {
            "item_type": "model",
            "item_object_id": "Qwen/Qwen3.8-27B",
            "position": 1
        }
    ])
    if failed:
        print("添加失败:", failed)

    # 获取条目列表
    items = await collection.items.get_items()
    for item in items:
        print(f"- {item.item_object_id}")

    # 删除合集
    await collection.delete()

🧪 运行测试

项目包含完整的测试用例,位于 tests/ 目录。运行前请确保已设置有效的 MODELSCOPE_API_TOKEN。

📄 许可证

本项目使用 MIT 许可证。

Metadata

Release files for modelscope-api 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for modelscope-api 0.0.5
File Size Uploaded
modelscope_api-0.0.5.tar.gz 30.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for modelscope-api 0.0.5
File Interpreter ABI Platform
modelscope_api-0.0.5-py3-none-any.whl Python 3 none any Details

Total release size: 71.3 kB

Release files / modelscope_api-0.0.5.tar.gz

Download URL modelscope_api-0.0.5.tar.gz
Size 30.3 kB
Tags Source
SHA-256 checksum
How to use checksums
2a88945496f4d24172f89acfe54b11da9a9436f63a00f6654a5a5d82bd635425
BLAKE2b-256 checksum
How to use checksums
7a85331771c87bf3aca9946b0252cd1834138e816d9c26b9adac88aea6d0639a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.7

Release files / modelscope_api-0.0.5-py3-none-any.whl

Download URL modelscope_api-0.0.5-py3-none-any.whl
Size 41.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b55e125c49c1eaf7c3c40e12e5c05aedd316357bbe122e881997cea8135f0861
BLAKE2b-256 checksum
How to use checksums
f17021047596acc67aa2b230e5c85b46f401011924b7bb0999ba08fe9b2422f0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.7

Release history Release notifications | RSS feed

This release

0.0.5 This release

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page