API 文档
更新时间:2024-05-23
API文档
目录
Hub API
1. create_repo
入参 | 参数说明 | 数据类型 | 是否必填 | 默认值 |
---|---|---|---|---|
repo_type | 仓库类型,"app"或model,app表示类型为应用仓库,model表示模型库仓库 | string | true | 无 |
repo_id | 仓库名称。该入参兼容带前缀的写法,例如 repo_id="mynewrepo" 与 repo_id="1234/mynewrepo" 的写法都是合法的。前缀的取值与下载接口、上传接口的含义相同,为UID或者组织名。 | string | true | 无 |
app_name | 应用名称,必填 | string | true | 无 |
app_sdk | gradio或streamlit 应用类型 | string | true | 无 |
version | streamlit 或 gradio 版本,必填, gradio版本支持"4.26.0", "4.0.0" streamlit版本支持"1.33.0", "1.30.0" | string | true | 无 |
model_name | 模型名称,默认值为仓库名称 | string | false | ${repo_id} |
desc | 描述 | string | false | 无 |
private | 公开或者私密:True 私密,False 公开 | bool | false | False(公开) |
license | license | string | false | Apache License 2.0 |
token | Git token 访问令牌 | string | false | 空 |
成功返回
{
'desc': 'mydesc',
'license': 'Apache License 2.0',
'model_name': 'mymodelname',
'repo_id': 'myreponame',
'private': false
}
失败返回:参数不合法
{
'error_code': 10001,
'error_msg': 'params not valid.',
'biz_code': null,
'log_id': None
}
"ERROR":{1 item
"message":"src property must be a valid json object"
}
失败返回:repo 重复
{
'error_code': 10003,
'error_msg': 'repo重复 (repo already created)',
'biz_code': 500,
'log_id': None
}
"ERROR":{1 item
"message":"src property must be a valid json object"
}
常见错误参数
常见错误码如下:
10001, "参数无效"
10002, "未设置Token"
10003, "repo已经存在, 不能重复创建"
10004, "文件不存在"
10005, "找不到要上传的本地文件"
10006, "文件过大"
10007, "不支持上传文件夹"
10008, "仅支持文件夹"
10009, "命令行解析出错"
11001, "创建仓库失败"
11002, "没有仓库查看权限"
11003, "创建产线参数校验请求失败"
11004, "BOS AK/SK申请失败"
11005, "创建产线回调请求失败"
11006, "查询产线请求失败"
11007, "停止产线请求失败"
12001, "获取文件信息失败"
12002, "下载文件失败"
12003, "上传文件失败"
13001, "BOS上传失败"
2.download_file
入参 | 参数说明 | 数据类型 | 是否必填 | 默认值 |
---|---|---|---|---|
repo_id | 仓库名称,注意这与create_repo创建模型仓库接口的repo_id构成不同。此处的repo_id=$UID/$reponame,例如3821/myrepo。UID即AIStudio UID,取法下面会提到。此处的reponame等同于create_repo接口的repo_id。$UID/$reponame意为“我要下载这个UID用户的reponame仓库里的文件”。另外一提,此处的UID与token并无必然联系。token是接口方识别身份、判定权限的唯一凭证。UID仅用来结合reponame定位具体的目标仓库。 | string | true | 无 |
filename | 下载目标文件名路径,例如path/file1.txt | string | true | 无 |
revision | 分支 | string | false | master |
cache_dir | 指定下载目录 | string | false | 无 |
token | Git token 访问令牌 | string | false | 空 |
说明:打开AIStudio用户个人中心,便可查看UID并复制
成功返回
{
"path": "/Users/yourname/.cache/aistudio/models/private1/snapshots/mybranch123/2d30fba646971e6b23b0bf8237b3132b5f28882b/123123/333.txt"
}
失败返回:参数不合法
{
'error_code': 10001,
'error_msg': 'params not valid.',
'biz_code': null,
'log_id': None
}
失败返回: 未设置 token
{
'error_code': 10002,
'error_msg': 'token have not been set.',
'biz_code': null,
'log_id': None
}
失败返回:找不到文件
{
'error_code': 12001,
'error_msg': 'object does not exist [id: mybranch1232, rel_path: ]',
'biz_code': 404,
'log_id': None
}
说明:文件下载目录的指定方法
-
方法1:入参指定。优先级最高
res = download( repo_id='myrepoid/myreponame', filename='README.md', cache_dir='/path/to/dir' )
指定后,文件将会下载到:
"/path/to/dir/README.md"
-
方法二:如果入参没有指定,则依照环境变量指定下载目标目录。
os.environ["AISTUDIO_CACHE_HOME"] = "/path/to/dir"
指定后,文件将会下载到:
"/path/to/dir/.cache/aistudio/models/"
3.upload_file
上传普通文件大小限5M
上传大文件(LFS)限5G
入参 | 参数说明 | 数据类型 | 是否必填 | 默认值 |
---|---|---|---|---|
repo_id | 仓库名称,注意这与create_repo创建模型仓库接口的repo_id构成不同。此处的repo_id=$UID/$reponame,例如3821/myrepo。UID即AIStudio UID,取法下面会提到。此处的reponame等同于create_repo接口的repo_id。$UID/$reponame意为“我要下载这个UID用户的reponame仓库里的文件”。另外一提,此处的UID与token并无必然联系。token是接口方识别身份、判定权限的唯一凭证。UID仅用来结合reponame定位具体的目标仓库。 | string | true | 无 |
path_or_fileobj | 待传的本地文件名路径,暂只支持绝对路径,如"/Users/myname/Downloads/README.md"暂不支持data stream/buffer类型 | string | true | 无 |
path_in_repo | 上传到仓库里的路径,例如 "mydir/README.md"。若直接填文件名,则传至根目录。 | string | true | 无 |
revision | 只支持分支 | string | false | master |
token | Git token 访问令牌 | string | false | 空 |
成功返回
{
"message": "Upload done."
}
失败返回:参数不合法
{
'error_code': 10001,
'error_msg': 'params not valid.',
'biz_code': null,
'log_id': None
}
4.file_exists
入参 | 参数说明 | 数据类型 | 是否必填 | 默认值 |
---|---|---|---|---|
repo_id | 仓库名称,注意这与create_repo创建模型仓库接口的repo_id构成不同。此处的repo_id=$UID/$reponame,例如3821/myrepo。UID即AIStudio UID,取法下面会提到。此处的reponame等同于create_repo接口的repo_id。$UID/$reponame意为“我要下载这个UID用户的reponame仓库里的文件”。另外一提,此处的UID与token并无必然联系。token是接口方识别身份、判定权限的唯一凭证。UID仅用来结合reponame定位具体的目标仓库。 | string | true | 无 |
filename | 检查目标文件名路径,例如path/file1.txt | string | true | 无 |
revision | 只支持分支 | string | false | master |
token | Git token 访问令牌 | string | false | 空 |
成功返回:
True # 文件存在于云端仓库
False # 文件不存在
失败返回:参数不合法
{
'error_code': 10001,
'error_msg': 'params not valid.',
'biz_code': null,
'log_id': None
}
错误码
错误码 | 描述 |
---|---|
0 | 成功 |
10000 | SDK报错 |
10001 | 非法参数 |
10002 | 未设置token |
10003 | 不能重复创建repo |
10004 | 找不到要下载的仓库文件 |
10005 | 找不到要上传的文件 |
10006 | 上传文件过大 |
11000 | aistudio侧报错 |
11001 | aistudio侧创建仓库失败 |
12000 | gitea侧报错 |
12001 | gitea侧获取文件信息失败 |
12002 | gitea侧下载文件失败 |
12003 | gitea侧上传文件失败 |
注意事项
- 小心波浪线~
要特别注意不要混用 ~波浪线 与 /Users/${your_username}。
已测得在特殊情况下,会报错本地文件已存在,导致进程不成功。不同版本的python,表现情况也不同。 尽可能使用绝对路径。
- 常用参数说明
参数名称 | 参数说明 | 数据类型 |
---|---|---|
token | Git token 访问令牌。 | string |
repo_id | 仓库名称 | string |
model_name | 模型名称,默认值为仓库名称 | string |
desc | 仓库描述 | string |
private | 公开或者私密:True 私密,False 公开 | bool |
license | license | string |
filename | 下载目标文件名路径,例如path/file1.txt | string |
revision | 分支 | string |