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

> ## Agent Instructions
> Use https://docs.fastino.ai/llms.txt to discover and navigate pages. Use https://docs.fastino.ai/llms-full.txt when you need the complete documentation corpus. Use https://docs.fastino.ai/openapi.json as the source of truth for customer-facing routes. For GLiDE decision inference, call POST https://api.fastino.ai/v1/systemone with model fastino/GLiDE. Create managed config jobs with POST /v1/training/jobs using base_model. For custom training loops, native JSON clients use the public operations under /v1/training/jobs and /v1/training/usage. Existing Tinker clients use tinker==0.32.0 with TINKER_BASE_URL=https://api.fastino.ai/v1/training/compat/tinker and TINKER_CREDENTIAL_CMD. Compatibility child routes are private and absent from OpenAPI. Auto Train is private access and has no public route; direct interested users to sales@fastino.ai. Do not infer undocumented routes. Read API keys from FASTINO_API_KEY and never embed credentials in code, logs, or reports.

# 使用编码代理连接 Azure Blob 数据

> 让 Cursor、Claude Code 或 Codex 以只读方式将 Azure Blob 容器连接到 Fastino 项目。

你无需手动拼接 API 请求。编码代理可以发现 Azure 资源信息、创建项目连接器、
引导完成 Microsoft 同意、授予容器级只读权限、测试连接并启动不可变数据快照。

## 你需要提供的信息

* Azure Blob 容器 URL，可包含 blob 前缀。
* Fastino 项目名称或 ID。
* 数据用途：`training` 或 `evaluation`。

代理会通过当前 Azure CLI 会话解析租户、订阅、资源组、存储账户和容器。
代理会根据该存储账户的 Azure 元数据核实这些值，而不是依赖当前 CLI 订阅。
如果无法核实，代理会停下来告诉你缺少哪些信息，而不会猜测。

## 开始前

将编码代理连接到团队的 Fastino MCP 端点：

```text theme={null}
https://api.fastino.ai/v1/teams/YOUR_TEAM_ID/mcp
```

然后登录拥有该存储账户的 Azure 目录和订阅：

```bash theme={null}
az login
az account show
```

你的 Azure 身份还必须能够在容器上分配角色，例如拥有 **Owner** 或
**User Access Administrator** 角色。

> [!NOTE]
>
> Azure 订阅角色和 Microsoft Entra 目录角色互不相同。订阅 Owner 可以授予
> Blob RBAC，但不一定能批准目录中的新企业应用。

## 向代理发出请求

```text theme={null}
将 https://customerdata.blob.core.windows.net/training/incoming/
连接到 Fastino 项目 "support-classifier"，作为训练数据。

使用我当前的 Azure CLI 会话。只在该容器上授予 Storage Blob Data Reader，
测试连接，启动同步，等待同步完成并报告生成的数据集。不要启动训练。
```

## 同步结果

同步会先转换并验证所选前缀下的文件，然后再发布数据集。同步成功后，
同步报告会列出生成的数据集。

* 如果有文件未通过验证，同步会失败且不会发布任何数据集。报告会列出需要检查的文件。
  代理会转告这些失败信息，并在排除文件或更改前缀之前先征求你的同意。
* 如果文档转换触发速率限制，报告会标记为 `partial`（列出的数据集可用，但缺少部分文件）
  或 `transient`（未发布新内容），并列出 `retryable_files`。让代理重新同步即可，
  无需重新测试或更改前缀。
* 如果你通过 Fastino MCP 委托微调，同步是可选的。批准计划后，微调代理可以检查并
  预处理已连接容器中的原始文件。

## 同意与权限

首次连接某个 Azure 租户中的容器时，该租户中的人员必须在浏览器中打开
`setup.consent_url`，以创建 Fastino 企业应用。代理无法代替用户批准。
如果该应用已存在，则无需再次同意。普通用户只有在租户策略允许对该应用
进行用户同意时才能批准；有些租户会限制未经发布者验证的外部应用。
如果用户同意被阻止，请将 `setup.admin_consent_url` 交给 Entra
**Cloud Application Administrator** 或 **Global Administrator**。
订阅的 Owner 角色不能代替目录中的同意权限。

同意本身不会授予任何 Blob 访问权限。连接器测试完成后，订阅的 Owner 或
User Access Administrator 需要仅对所选容器授予 **Storage Blob Data Reader**。
每个新增容器都需要单独分配角色，但无需再次同意。客户无需修改 Fastino
的应用注册。

Fastino 不接受账户密钥、SAS 令牌、客户证书或客户端密钥。运行时使用 Fastino
自己的证书身份，并且仅获得所选容器范围内的 **Storage Blob Data Reader**。

## 故障排除

| 状态或 Microsoft 错误 | 含义 | 处理方法 |
| - | - | - |
| `consent_missing` | Azure 租户中尚无 Fastino 企业应用 | 打开返回的同意 URL；仅在租户策略要求时联系管理员 |
| `AADSTS1003031` | Fastino 的 Entra 应用注册配置错误；可能出现在 Microsoft 同意流程中，或作为 `consent_missing` 的 `provider_error_code` 返回 | 联系 Fastino 支持；不要通过修改自己租户的应用注册或 Blob RBAC 来绕过此错误 |
| `role_missing` | 已同意，但缺少 Blob RBAC | 运行返回的容器级角色命令，然后重新测试 |
| `container_missing` | 存储坐标不匹配 | 让代理根据容器 URL 重新发现资源 |
| `unavailable` | Azure 或 Fastino 暂时无法完成测试 | 重试测试；如果持续失败，请联系 Fastino 支持 |

Azure RBAC 传播可能需要几分钟。先让代理重试测试，不要立即创建重复连接器。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.