> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coze.cn/llms.txt
> Use this file to discover all available pages before exploring further.

## 功能概述 {#115ce0fd}
扣子罗盘 Java SDK 支持通过版本标识（`label`）来拉取和执行指定的 Prompt 版本。这一特性使得你能够灵活管理生产环境（`production`）、预发布环境（`staging`）等不同环境下的 Prompt 版本，实现平滑发布与回滚。
### 版本解析规则 {#03a512e4}
在拉取或执行 Prompt 时，可以通过 `version` 或 `label` 参数指定目标版本。SDK 遵循以下优先级规则：

* **显式指定 Version**：如果参数中包含 `version`，SDK 将**忽略** `label`，直接使用指定的版本号。
* **仅指定 Label**：如果未指定 `version` 但指定了 `label`，SDK 将解析该 `label` 当前指向的 Prompt 版本。
* **默认行为**：如果 `version` 和 `label` 均未指定，SDK 将默认拉取该 Prompt 的**最新已发布版本**。

## 代码示例 {#7ebaf558}
:::tip 说明
**前置条件**：运行以下示例前，请确保已初始化 `CozeLoopClient` 并正确配置了鉴权环境变量。
:::
### 通过 Label 拉取 Prompt {#51ccdb11}
适用于需要获取 Prompt 内容进行本地处理或查看的场景。
```Java
import com.coze.loop.client.CozeLoopClient;
import com.coze.loop.entity.Prompt;
import com.coze.loop.prompt.GetPromptParam;

// ... 初始化 client

try {
    // 场景：拉取线上环境（production）对应的 Prompt 版本
    Prompt prompt = client.getPrompt(GetPromptParam.builder()
            .promptKey("your_prompt_key")
            .label("production")
            .build());

    System.out.println("当前 production 对应的版本: " + prompt.getVersion());

} catch (Exception e) {
    e.printStackTrace();
}
```

### Version 优先级演示 {#9b606620}
当同时指定 `version` 和 `label` 时，`version` 具有最高优先级。
**示例场景**：假设 Prompt 的 `production` 标签指向 `0.0.2` 版本，但代码中显式指定了 `0.0.1` 版本。
```Java
Prompt prompt = client.getPrompt(GetPromptParam.builder()
        .promptKey("your_prompt_key")
        .version("0.0.1") // 显式指定版本，优先级最高
        .label("production")      // 此参数将被忽略
        .build());

// 输出结果为 "0.0.1"
System.out.println("实际拉取的版本: " + prompt.getVersion()); 
```

### 通过 Label 执行 Prompt {#9b5d7c6d}
在执行 Prompt 时使用 `label`，可以确保应用始终使用特定环境配置的 Prompt 版本，无需修改代码即可实现版本切换。
```Java
import com.coze.loop.client.CozeLoopClient;
import com.coze.loop.entity.ExecuteParam;
import com.coze.loop.entity.ExecuteResult;
import java.util.HashMap;
import java.util.Map;

// ... 初始化 client

try {
    Map variables = new HashMap<>();
    variables.put("query", "介绍一下自己");

    // 构建执行参数，指定使用 "production" 环境版本
    ExecuteParam param = ExecuteParam.builder()
            .promptKey("your_prompt_key")
            .label("production") 
            .variableVals(variables)
            .build();

    ExecuteResult result = client.execute(param);

    System.out.println("执行结果: " + result.getMessage().getContent());

} catch (Exception e) {
    e.printStackTrace();
}
```

