# AI 提示词
## 前言
在 AIEditor 中的 `AI 菜单`、`AI 命令`、`AI 代码块` 都是可以配置自定义的提示词 Prompt 的,例如菜单配置如下
```ts
new LinwitDocEditor({
element: "#aiEditor",
ai:{
// models:{...] 等其他配置
menus:[
{
icon: ``,
name: "AI 续写",
prompt: "请帮我继续扩展一些这段话的内容",
text: "focusBefore",
model: "spark",
},
{
icon: ``,
name: "AI 优化",
prompt: "请帮我优化一下这段文字的内容,并返回结果",
text: "selected",
model: "spark",
},
]
},
})
```
此时,用户选择了编辑器里的一段文字,假设被选中的文字内容为:"`AIEditor 是一个不错的编辑器`",然后点击 `AI 优化` 的菜单。
那么,AIEditor 会向大语言模型发送的内容如下:
```
AIEditor 是一个不错的编辑器
请帮我优化一下这段文字的内容,并返回结果
```
并等等大语言模型返回结果,让用户进行后续操作。此时,如果用户选中的文本内容,与 `"请帮我优化一下这段文字的内容,并返回结果"` 冲突,或者有可能产生额外含义的时候,
大语言模型返回的内容可能并不一定是我们想要的内容。
## `{content}` 占位符
为了解决用户选择的文本,和简单的 prompt 提示词定义可能冲突的场景,AIEditor 支持在 prompt 内容中,添加自定义占位符 `{content}`。
假设我们自定义的 prompt 提示词为:
```
请帮我优化一下的文字内容,并返回结果,文字内容为:
“{content}”
注意,只能返回中文内容,不能返回英文内容。
```
那么,假设用户选中编辑器的文字内容为:"`AIEditor 是一个不错的编辑器`",然后点击 AI 优化 的菜单时,AIEditor 发生给大语言模型的 prompt 如下:
```
请帮我优化一下的文字内容,并返回结果,文字内容为:
“AIEditor 是一个不错的编辑器”
注意,只能返回中文内容,不能返回英文内容。
```
通过 `{content}` 占位符的方式,会使得提示词变得更加清晰和易用。