Skip to content

Latest commit

 

History

History
220 lines (163 loc) · 6.08 KB

File metadata and controls

220 lines (163 loc) · 6.08 KB

快速入门 - 完全新手指南

欢迎使用 QPanda3 Runtime MCP Server!本指南将帮助你从零开始,即使你是量子计算或 MCP 服务器的新手。

这是什么?

QPanda3 Runtime MCP Server 是一座桥梁,将 AI 助手(如 Claude、ChatGPT 或自定义 AI 智能体)连接到本源量子的量子计算服务。通过这个服务器,你可以:

  • 让 AI 助手在真实的量子计算机上运行量子线路
  • 让 AI 管理你的量子计算任务
  • 构建 AI 驱动的量子计算应用

安装与配置

如果你还没有安装服务器,请先按照以下指南操作:

  1. 安装指南 - 安装依赖并配置 API 密钥
  2. 配置说明 - 连接到你的 AI 编程平台(Claude、Cline、Cursor 等)

你的第一个量子线路

连接到 AI 助手后,尝试以下提示:

示例 1:列出可用设备

List all available QPU devices

AI 将调用 list_qpu_devices_tool 并显示可用的量子计算机。

示例 2:运行贝尔态线路

Run a Bell state circuit on device 20 with 1000 shots

AI 将:

  1. 使用贝尔态线路(创建量子纠缠)
  2. 将其提交到指定设备
  3. 返回测量结果

预期结果:约 50% 00 和约 50% 11(量子纠缠!)

示例 3:检查任务状态

Check the status of my last task

了解工具

账户管理

工具 功能 使用场景
setup_origin_quantum_account_tool 配置你的凭据 首次设置
list_saved_accounts_tool 列出会话账户 检查身份验证
active_account_info_tool 获取当前账户信息 验证连接

设备管理

工具 功能 使用场景
list_qpu_devices_tool 列出所有量子设备 查找可用的 QPU
get_qpu_properties_tool 获取设备详情 检查设备能力

任务执行

工具 功能 使用场景
sample_tool 运行带测量的线路 获取测量结果
estimate_tool 计算期望值 量子化学、VQE
batch_sample_tool 运行多条线路 对比线路
batch_estimate_tool 估算多条线路 优化任务

任务管理

工具 功能 使用场景
get_task_status_tool 检查任务是否完成 监控进度
get_task_results_tool 获取任务结果 获取输出
cancel_task_tool 取消任务 停止执行
list_my_tasks_tool 列出最近的任务 查看历史

多目标决策

工具 功能 使用场景
create_circuit_observable_binding_tool 创建绑定 多目标优化
add_product_rule_tool 添加所有组合 测试所有配对
add_zip_rule_tool 添加特定配对 自定义组合
estimate_with_binding_tool 执行绑定 运行估算
list_bindings_tool 列出绑定 管理绑定
delete_binding_tool 删除绑定 清理

预置线路资源

服务器提供了开箱即用的量子线路:

资源 描述 量子比特数 预期结果
circuits://bell-state 量子纠缠 2 50% 00,50% 11
circuits://ghz-state 多量子比特纠缠 3 50% 000,50% 111
circuits://random 随机数生成器 4 均匀分布
circuits://superposition 单量子比特演示 1 50% 0,50% 1

编写自己的量子线路

线路使用 OriginIR 格式:

QINIT <量子比特数>
CREG <经典比特数>
<门操作>
MEASURE q[i],c[i]

常用量子门

量子门 语法 描述
Hadamard 门 H q[0] 叠加态
Pauli-X 门 X q[0] 比特翻转
Pauli-Y 门 Y q[0] 比特+相位翻转
Pauli-Z 门 Z q[0] 相位翻转
CNOT 门 CNOT q[0],q[1] 受控非门
CZ 门 CZ q[0],q[1] 受控 Z 门
测量 MEASURE q[0],c[0] 测量到经典比特

示例:自定义线路

# 一个 3 量子比特的 GHZ 类线路
circuit = """QINIT 3
CREG 3
H q[0]
CNOT q[0],q[1]
CNOT q[1],q[2]
MEASURE q[0],c[0]
MEASURE q[1],c[1]
MEASURE q[2],c[2]"""

了解可观测量

对于估算任务,你需要定义可观测量(即要测量什么):

字典格式

observable = {
    "Z0 Z1": 1.0,   # 在量子比特 0 和 1 上测量 Z
    "X0": 0.5       # 在量子比特 0 上测量 X
}

泡利字符串格式

observable = "IIXY"  # 4 量子比特可观测量

任务工作流

graph LR
    A[Submit Task] --> B[Check Status]
    B --> C{Status?}
    C -->|PENDING| B
    C -->|RUNNING| B
    C -->|DONE| D[Get Results]
    C -->|FAILED| E[Handle Error]
Loading

完整示例

# 1. 提交任务
result = await sample_tool(
    circuit=bell_state_circuit,
    device_id="20",
    shots=1000
)
task_id = result["task_id"]

# 2. 轮询等待完成
import asyncio
while True:
    status = await get_task_status_tool(task_id)
    if status["task_status"] == "DONE":
        break
    elif status["task_status"] == "FAILED":
        raise Exception("Task failed!")
    await asyncio.sleep(2)

# 3. 获取结果
results = await get_task_results_tool(task_id)
print(f"Results: {results['results']}")

安全提示

  1. 永远不要提交 .env 文件 - 将其添加到 .gitignore
  2. 在生产环境中使用环境变量 来管理凭据
  3. 限制文件权限chmod 600 .env

后续步骤

获取帮助