版本管理接口
版本接口用于协商API版本号、获取系统版本、能力以及各重要参数的枚举值。
注意:该API的url中没有版本前缀
用途 |
方法 |
请求参数 |
返回值 |
|---|---|---|---|
版本和能力信息获取 可供前端界面获取各参数可选值 |
version URI: /version |
{
"jsonrpc": "2.0",
"id": 1,
"method": "version",
"params": {
"body": {}
}
}
|
{
"jsonrpc": "2.0",
"result": {
"version": "1.0.0",
"api_version": "v1",
"supported_api_versions": [
{
"version": "v1",
"status": "CURRENT"
}
],
"platform_version": "五岳量子计算操作系统(qcos) v1.0.0",
"capabilities": {
"job_types": [
"sampling",
"estimation"
],
"drivers": {
"DriverHanyuan1": {
"supported_code_types": null,
"description": "中科酷原-汉原1 中性原子驱动"
},
"DriverCirqSim": {
"supported_code_types": null,
"description": "Cirq Simulator 模拟器驱动"
},
"DriverTiangong100": {
"supported_code_types": [
"qubo"
],
"description": "玻色量子-天工100 光量子伊辛机驱动"
},
"DriverQiskitAerSim": {
"supported_code_types": null,
"description": "Qiskit Aer 模拟器驱动"
},
"DriverQiskitQasmSim": {
"supported_code_types": null,
"description": "Qiskit Qasm 模拟器驱动"
},
"DriverDummy": {
"supported_code_types": null,
"description": "空载测试驱动(中性原子)"
}
},
"transpilers": {
"cmss": {
"alias_name": "五岳转译器",
"supported_code_types": [
"qasm",
"qasm2"
]
},
"dummy": {
"alias_name": "空载转译器(dummy)",
"supported_code_types": [
]
},
"qiskit": {
"alias_name": "IBM Qiskit",
"supported_code_types": [
"qasm",
"qasm2",
"qasm3"
]
}
},
"tech_types": {
"none": {
"alias_name": "无"
},
"neutral_atom": {
"alias_name": "中性原子"
},
"ion_trap": {
"alias_name": "离子阱"
},
"superconducting": {
"alias_name": "超导"
},
"photon": {
"alias_name": "光量子"
},
"generic_simulator": {
"alias_name": "通用量子模拟器"
}
},
"profiling": {
"all": {
"alias_name": "使能所有性能评估类型"
},
"code": {
"alias_name": "作业中单代码执行耗时"
},
"schedule": {
"alias_name": "调度器耗时"
},
"driver:parse": {
"alias_name": "代码解析耗时"
},
"driver:transpile": {
"alias_name": "转译器耗时"
},
"driver:run": {
"alias_name": "后端运行耗时"
}
},
"driver_transpiler_mappings": {
"DriverHanyuan1": [
"cmss"
],
"DriverCirqSim": [
"dummy"
],
"DriverTiangong100": [],
"DriverQiskitAerSim": [
"qiskit"
],
"DriverQiskitQasmSim": [
"qiskit"
],
"DriverDummy": [
"cmss"
]
}
}
},
"id": 1
}
|
版本协商详解
API 版本管理
系统支持多个API版本,允许客户端与不同版本的服务器兼容:
当前版本 (CURRENT):正在活跃使用的API版本
废弃版本 (DEPRECATED):即将停止支持的版本
支持期:通常为新版本发布后的6个月
能力枚举 (Capabilities)
capabilities 字段包含系统支持的各种功能和类型:
job_types:系统支持的作业类型 -
sampling:采样作业,获取量子电路的测量结果 -estimation:估计作业,评估电路性能drivers:可用的驱动程序列表 - 包含驱动名称、支持的代码类型和描述
transpilers:可用的转译器列表 - 包含转译器别名和支持的代码类型
tech_types:支持的量子技术类型 - 中性原子、离子阱、超导、光量子等
profiling:性能评估类型 - 用于了解作业执行性能
driver_transpiler_mappings:驱动与转译器的对应关系 - 指定每个驱动支持的转译器
API版本状态说明
系统支持多个API版本状态:
CURRENT - 当前活跃版本,推荐使用,优先使用
DEPRECATED - 已废弃但仍可用,即将停止支持,尽快升级
UNSUPPORTED - 不再支持的版本,必须升级
最佳实践建议
启动时查询版本
# 应用启动时调用一次 version_info = version() api_version = version_info["api_version"] availability = version_info["supported_api_versions"]
版本兼容性检查
# 检查服务器是否支持需要的API版本 def check_compatibility(required_version): version_info = version() for api_version in version_info["supported_api_versions"]: if api_version["version"] == required_version: return api_version["status"] != "UNSUPPORTED" return False
驱动与转译器配合
# 获取特定驱动支持的转译器 version_info = version() driver_transpilers = version_info["capabilities"]["driver_transpiler_mappings"] # 提交作业时使用兼容的组合 available_transpilers = driver_transpilers.get("DriverDummy", [])
缓存版本信息
• 推荐在应用启动时查询一次 version() 接口 • 将版本信息缓存在内存中 • 通常无需频繁调用,除非检测到API不兼容错误