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

# Prompt 与上下文

> 组织 system、user、assistant 消息和长上下文

Prompt 与上下文决定文本模型能不能稳定完成任务。这里不讲玄学，只给可复制的组织方式。

## 消息角色

| 角色          | 用途               |
| ----------- | ---------------- |
| `system`    | 放长期规则、身份、语气和输出约束 |
| `user`      | 放用户输入、本次任务和变量    |
| `assistant` | 放历史回答，用于多轮上下文    |

## 基本原则

* 稳定规则放进 `system`
* 本次输入和变量放进 `user`
* 结构化输出要写清字段名和格式
* 长上下文任务要删除无关信息，不要把噪声全部塞进去
* 生产场景要保存 prompt 版本，方便回滚和对比
* 不要把 API Key、密码、私钥、完整卡号等敏感信息放进 prompt
* 输出会进入业务系统时，先校验再入库或执行动作

## 摘要模板

```json theme={null}
[
  {
    "role": "system",
    "content": "你是一个严格的摘要助手。只保留事实，不添加原文没有的信息。"
  },
  {
    "role": "user",
    "content": "请用 5 条要点总结下面内容：\n\n<原文>"
  }
]
```

## 翻译模板

```json theme={null}
[
  {
    "role": "system",
    "content": "你是专业翻译。保持原意，不解释，不扩写。"
  },
  {
    "role": "user",
    "content": "把下面内容翻译成英文：\n\n<中文内容>"
  }
]
```

## 分类模板

```json theme={null}
[
  {
    "role": "system",
    "content": "你是一个分类器，只输出一个分类名。可选分类：售前、售后、退款、技术问题、其他。"
  },
  {
    "role": "user",
    "content": "<用户消息>"
  }
]
```

## JSON 提取模板

```json theme={null}
[
  {
    "role": "system",
    "content": "你是一个严格的 JSON 提取器。只输出合法 JSON，不要输出解释。"
  },
  {
    "role": "user",
    "content": "从下面文本中提取 name、company、email：\n\n<文本>"
  }
]
```

## 长上下文建议

| 问题     | 建议                       |
| ------ | ------------------------ |
| 内容太长   | 先切分摘要，再做最终任务             |
| 信息来源复杂 | 给每段内容加标题和来源              |
| 输出不稳定  | 固定字段、固定顺序、降低 temperature |
| 成本过高   | 先压缩上下文，只保留任务相关信息         |

## 生产落地建议

| 场景        | 做法                                                |
| --------- | ------------------------------------------------- |
| Prompt 调整 | 给每个版本写版本号，例如 `support_summary_v3`，日志里记录版本         |
| 真实用户输入    | 先做长度限制和敏感词/隐私字段脱敏，再拼进 prompt                      |
| JSON 输出   | 业务侧必须做 JSON parse 和字段校验，失败时用更严格 prompt 或人工兜底      |
| 多轮对话      | 只保留必要历史；长对话先摘要再继续，不要无限追加                          |
| 调用排查      | 日志记录模型、prompt 版本、参数、耗时、错误码和 `X-Oneapi-Request-Id` |

## 不建议这样做

* 把所有历史消息原样塞进 `messages`
* 让模型“自己猜”输出字段名
* 让模型直接决定扣款、发货、删库、封号等高风险动作
* 为了降低失败率无限重试同一个 prompt
* 在同一个 prompt 里混合互相冲突的规则
