# 预览来源原文件

以二进制流预览知识库关联的原文件。

```text
GET https://moi.matrixorigin.cn/newmoi/semantic-models/{model_id}/sources/file/{file_id}/preview
```

## 调用前准备

`file_id` 是来源原文件的文件 ID，不是[查询数据源列表](list-data-sources.md)中的 `row_id`。准备有目标知识库读取权限的 `$AI_STUDIO_API_KEY`、`$WORKSPACE_ID`、`$MODEL_ID` 和 `$FILE_ID`。

## 请求示例

```bash
curl -L "https://moi.matrixorigin.cn/newmoi/semantic-models/$MODEL_ID/sources/file/$FILE_ID/preview" \
  -H "X-API-Key: $AI_STUDIO_API_KEY" \
  -H "X-Workspace-ID: $WORKSPACE_ID" \
  -o preview.bin
```

## 成功响应

成功时返回 `200` 和文件二进制流，不使用 JSON 响应信封。

| Header | 说明 |
| --- | --- |
| `Content-Type` | 文件 MIME 类型；未识别时为 `application/octet-stream`。 |
| `Content-Disposition` | 有文件名时返回内联预览文件名。 |

Office 文件可能转换为 PDF 返回；ZIP 来源文件可能以其中的 Markdown 内容返回。因此应根据实际 `Content-Type` 处理响应。

## 常见错误

| HTTP 状态码 | 错误代码 | 常见原因 | 建议操作 |
| --- | --- | --- | --- |
| `400` | `ErrParamInvalid` | `model_id` 或 `file_id` 无效。 | 使用非空、无首尾空白的文件 ID。 |
| `403` | `ErrForbidden` | 没有目标知识库读取权限。 | 检查工作区和知识库授权。 |
| `404` | `ErrNotFound` | 文件不属于该知识库可访问的来源。 | 确认知识库 ID 和来源文件 ID。 |

## 后续操作

需要读取分段、版本和结构化文档信息时，改用[查询文档详情](get-document.md)。
