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

# 提示词处理

> 四个字段决定我们发送给提供商的内容以及我们保留的内容。

您的提示词在发送给提供商的途中会经过我们。有四个字段决定我们如何处理它。在调用提供商之前，我们会从请求正文中移除这四个字段，因此提供商永远不会看到它们。

| 字段              | 作用                       | 适用范围         |
| --------------- | ------------------------ | ------------ |
| `pii_mask`      | 在发送前用占位符替换个人数据           | 托管密钥         |
| `moderate`      | 在发送前检查提示词是否存在有害内容        | 托管密钥         |
| `trace_storage` | 为日志页面保留提示词和回复            | 托管密钥         |
| `cache`         | 以十分之一的价格对重复的 Claude 前缀计费 | Anthropic 直连 |

前三个字段仅在托管密钥上运行。对于您自己的密钥，我们会原封不动地转发您的请求。

掩码和内容审核首先读取您的请求设置，然后是您组织的默认设置，最后是关闭。跟踪存储仅读取请求设置，不读取其他。

## PII 掩码

我们可以在您的提示词到达提供商之前对其个人数据进行掩码处理。每个匹配项都会变成一个稳定的占位符，例如 `[EMAIL_1]`，这样模型仍然可以区分不同的人。它涵盖电子邮件、电话号码以及银行卡号等其他模式。

```json theme={null}
{ "pii_mask": true }
```

在单个请求中发送 `false` 可以跳过您组织已开启的掩码处理。如果掩码处理已开启但失败，我们将停止请求并返回 `500` [`pii_masking_failed`](/zh/errors#pii_masking_failed) 错误，而不是发送未掩码的请求。

## 内容审核

我们可以在发送提示词之前检查其是否存在有害内容。被阻止的提示词将返回 `403` [`moderation_blocked`](/zh/errors#moderation_blocked) 错误，并且不会发送给任何提供商。

```json theme={null}
{ "moderate": true }
```

## 跟踪存储

我们可以加密存储您的提示词和回复，以便日志页面可以显示它们。只有您的请求才能开启此功能。否则，托管请求会保留与 BYOK 请求相同的内容，即仅保留计费数据。

```json theme={null}
{ "trace_storage": true }
```

后续不带此字段的请求不会存储任何新内容。您已存储的内容将一直保留，直到您在日志页面上将其删除。

## 提示词缓存

我们会在 Anthropic 直连路由上缓存每个 Claude 请求。重复的前缀将以正常输入价格的十分之一计费。写入缓存的成本是输入价格的 1.25 倍。从未重复使用的前缀会额外收取 25% 的费用。这就是您可以关闭缓存的原因。

```json theme={null}
{ "cache": false }
```

您自己的标记始终优先。如果您的请求包含任何 `cache_control`，我们将直接转发它，不添加任何我们自己的内容。过短而无法缓存的请求将直接运行，不进行缓存。

| 路由              | 发生的情况                      |
| --------------- | -------------------------- |
| Anthropic 直连    | 自动进行，您自己的标记会覆盖它            |
| Bedrock         | 仅限您明确的标记，因为 Bedrock 没有自动缓存 |
| OpenAI 和 Gemini | 提供商本身会缓存重复的前缀，因此无需设置       |

响应会在其使用情况块中报告 `cached_tokens` 和 `cache_write_tokens`。

## 托管密钥上的身份字段

在托管密钥上，我们在调用提供商之前，会将四个身份字段替换为您组织 ID 的稳定哈希值。提供商在我们凭据上看到的身份必须来自我们，因此这些是我们更改而非转发的唯一字段。

* `user`
* `safety_identifier`
* `prompt_cache_key`
* `metadata.user_id`

对于您自己的密钥，我们会按您发送的方式转发所有这四个字段。

| 字段                  | 托管密钥                  | 您自己的密钥 |
| ------------------- | --------------------- | ------ |
| `user`              | 已移除                   | 已转发    |
| `safety_identifier` | 您的组织哈希值，在 OpenAI 上    | 已转发    |
| `prompt_cache_key`  | 您的组织哈希值，在 OpenAI 上    | 已转发    |
| `metadata.user_id`  | 您的组织哈希值，在 Anthropic 上 | 已转发    |

我们会保留 `metadata` 中所有其他键不变。

Workers AI 不接受请求正文中的身份字段，因此我们会将哈希值附加到请求本身。Gemini、Vertex 和 Bedrock 不接受我们可以设置的身份字段。在这三个路由上，我们会移除您的身份字段，不发送任何替代内容。

## 工具调用 ID 中的一个保留标记

Gemini 需要在每次工具调用时重放一个签名，因此我们将其包含在工具调用 ID 中。我们提供给您的 ID 格式为 `<id>::gsig::<signature>`，在其他提供商看到它之前，我们会将签名移除。

您自己的 ID 会原封不动地通过，即使它们包含 `::`。唯一需要避免的是在您创建的 ID 中使用字面文本 `::gsig::`，因为我们会将其识别为我们自己的标记并截断 ID。

## Gemini 模型上的文件名

您可以将文档以内联方式发送，作为 base64 字节或 `data:` URL。对于 Gemini 模型，我们会将媒体类型和字节发送给 Google，并省略 `filename` 和 `file_id`。Google 的文档格式没有这些字段，并且会拒绝包含这些字段的请求。模型读取字节内容，不会看到文件名，因此您发送的任何内容都不会丢失。

所有其他提供商仍然会收到文件名。
