# 查看结果

> 运行页面的各个标签页、分数，以及如何导出或部署最佳版本。

运行页面显示运行的进度和结果。本指南说明运行页面上的标签页、各项分数，以及如何导出或部署最佳版本。

## 运行页面上的标签页

运行页面只显示适用于该运行的标签页。部分标签页取决于路径、状态和你的体验级别。

| 标签页             | 何时显示                                                   | 包含的内容                                                 |
| ------------------ | ---------------------------------------------------------- | ---------------------------------------------------------- |
| **概览**           | 始终                                                       | 进度、分数和分数历史                                       |
| **用量**           | 成功的运行，且其程序可以由 Skynet 部署                     | 用于运行优化后程序的表单，以及集成代码                     |
| **产物**           | 有结果的提示词、代码或文本运行                             | 你的产物的各个版本，以及最佳版本                           |
| **数据**           | 已完成的 DSPy 程序运行                                     | 划分为训练集、验证集和测试集的数据，以及测试集评估         |
| **代码**           | 运行有可显示的代码时                                       | 运行代码和指标                                             |
| **奖励**           | 指标声明了奖励组成部分的提示词、代码或文本运行             | 奖励组成部分及其权重                                       |
| **产物**           | 有优化后的提示词或文件的运行                               | 优化后的输出和 **导出结果**                                |
| **日志**           | 大多数运行                                                 | 运行日志                                                   |
| **用量与费用**     | 你已登录时                                                 | 运行的花费                                                 |
| **定时运行**       | 成功的提示词、代码或文本运行                               | 再次运行优化的计划                                         |
| **配置**           | 始终                                                       | 运行配置                                                   |

> [!NOTE]
> 在 **引导** 级别下，运行页面会隐藏 **数据**、**代码**、**日志** 和 **配置** 标签页。通过直接链接仍然可以打开这些标签页。你可以在 **设置 → 账户** 中更改级别。

## 分数

Skynet 根据验证用例选择版本，并在测试用例上报告最终分数。引擎永远看不到测试用例。请阅读[数据集与划分](/docs/zh-Hans/concepts/datasets)。

**概览** 标签页显示：

- **提升**：从起始版本到最佳版本的变化。
- **分数变化**：运行过程中的分数。
- **分数明细**：每项指标，包含 **基线**、**已优化** 和 **变化** 列。

运行进行中时，概览还会显示 **已用时**、**剩余** 和 **速率**。

对于提示词、代码或文本运行，当你的指标报告命名分数时，概览还会显示 **命名分数**。

对于 DSPy 程序运行，**数据** 标签页中有 **测试集评估**。它显示每个测试用例的基线分数和优化后分数。

### 当最佳版本就是起始版本时

有时没有任何候选能超过起始版本。这时 Skynet 会返回起始版本。**产物** 标签页会告诉你已应用回归保护。

如果运行因达到预算而停止，运行页面会告诉你 Skynet 保存了哪个版本。请阅读[运行](/docs/zh-Hans/concepts/runs)。

## 导出最佳版本

### 提示词、代码和文本运行

**产物** 标签页列出了你的产物的 **版本**。对于每个版本，你可以：

- 复制该版本。
- 将该版本下载为文件。
- 对于仓库运行，将该版本下载为包含整个仓库的 zip 文件。

你可以把一个版本与另一个版本进行比较。该标签页还会显示某个版本的 **评分器反馈**。

### DSPy 程序运行

**产物** 标签页中有 **导出结果** 面板。打开 **下载** 菜单。它会显示该运行可用的格式：

| 选项         | 格式                                       |
| ------------ | ------------------------------------------ |
| DSPy 程序    | `.zip`，一个可以直接运行的自包含导出包     |
| 优化后的程序 | `.pkl`                                     |
| 提示词       | `.json`                                    |
| 优化后的代码 | `.py`                                      |
| 日志         | `.csv`                                     |

## 部署最佳版本

你可以从自己的代码中调用优化后的 DSPy 程序。**用量** 标签页包含两个部分：

- 一个表单。输入各输入字段并选择 **运行**，即可得到预测结果。
- cURL、Python、JavaScript、Go 和 DSPy 的 **集成代码**。

程序始终使用优化时的模型设置运行。你必须提供所有输入字段。Skynet 会忽略多余的字段。

要调用程序，请在 **设置 → API** 中创建 API 令牌。然后发送请求：

```bash tab="cURL"
export APP_API_TOKEN=skyd_...
curl -X POST "$API_URL/serve/<optimization_id>" \
  -H "Authorization: Bearer $APP_API_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"inputs": {"question": "What is DSPy?"}}'
```

```python tab="Python"
import os
import uuid
import requests

response = requests.post(
    f"{os.environ['API_URL']}/serve/<optimization_id>",
    headers={
        "Authorization": f"Bearer {os.environ['APP_API_TOKEN']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
    json={"inputs": {"question": "What is DSPy?"}},
)
print(response.json()["outputs"])
```

把 `question` 替换为你的程序的输入字段。**用量** 标签页上的 **集成代码** 会为你填好真实的 URL 和字段名称。

响应包含 `outputs`、`input_fields`、`output_fields` 和 `model_used`。

> [!TIP]
> 请求体也接受 `max_cost_cents`。它设置这一次调用最多可以花费的金额，单位为美分。部分运行要求提供此字段。

要在部分输出产生时就获取它们，请把相同的请求发送到 `/serve/<optimization_id>/stream`。响应是一个服务器发送事件（SSE）流。

关于身份验证和其他端点，请阅读 [API](/docs/zh-Hans/api)。

## 分享结果

你可以把运行分享给其他人，或把它列入公开的“探索”展示区。请阅读[分享与发布](/docs/zh-Hans/guides/sharing)。

---

Source: https://staging.skynetml.com/docs/zh-Hans/guides/results
