聊天笔记本简介
聊天笔记本提供对大型语言模型(LLM)的交互式基于聊天的访问,包括在使用 Wolfram 语言时提供基于自然语言的帮助.
创建与使用聊天笔记本及输入
创建新的聊天笔记本
从菜单中选择 文件 ▶ 新建 ▶ 支持聊天的笔记本 或按 Alt + N 或 Ctrl+Ctrl+N.
和在标准笔记本中一样,在聊天笔记本中,默认单元类型是 Wolfram 语言输入单元. 聊天输入单元可以通过多种不同的方式创建.
还可以通过从菜单中选择 文件 ▶ 新建 ▶ 聊天驱动笔记本 来创建一个笔记本,其中默认的新单元是聊天输入单元.
创建新的聊天输入单元
在新单元中键入 '(单引号),或从笔记本工具栏的插入单元按钮中选择 ChatInput:
可以使用笔记本工具栏中的聊天设置按钮 或使用 CreateNotebook["Chat"] 创建新的聊天笔记本在笔记本中启用聊天功能.
使用聊天输入
要开始聊天对话,首先创建一个新的聊天输入单元并键入您的输入. 聊天输入单元有蓝色边框,左侧有一个聊天图标:
在单元被运算之前,左侧图标(角色图标)会发生变化,以指示当前角色. 默认角色是代码助手 (),指示 LLM 充当 Wolfram 语言代码的友好助手.
聊天输入单元有两个主要设置来控制聊天输入的处理方式:LLM 模型和角色. 单击聊天输入单元左侧的角色图标可查看并更改这些设置.
要运算聊天输入,将光标放在聊天输入单元中,然后按 Shift+Enter:
当您执行聊天运算时,聊天输入单元和聊天历史记录的内容将发送到配置的默认 LLM 模型. 生成的响应会立即写入您的笔记本中.
如果想在聊天运算完成之前停止聊天运算,可以单击输出单元上的停止图标() .
聊天输出的元素
LLM 的输出是格式化的. 链接可点击,代码具有适当的样式并且可运行,并且 Manipulate 是交互式的.
可以将输出粘贴到笔记本中,并像其他输入一样对其进行编辑. 将鼠标悬停在输出中的代码上会显示三个按钮:
第一个按钮将代码插入到新的输入单元并运行它.
第二个按钮将代码复制到新的输入单元,但不对其进行计算.
第三个按钮将代码复制到剪贴板.
有时,作为响应的一部分,LLM会调用 LLMTool 来提供帮助. 工具是一种模块化的方式,可以扩展LLM的功能,范围从执行特定预定义操作,比如查找文档或运算代码,到执行其他计算任务.
如果 LLM 使用了一个工具,它会在输出中提到. 可以点击箭头查看发送给 LLM 的内容:
提示语
- 角色提示(Persona prompts)定义聊天交互
- 提示修饰符(Prompt modifiers)修改从 LLM 输出的内容
- 函数提示(Function prompts)从现有文本或其他输入生成输出
角色
角色(Persona)是对聊天输入的内置修改. 通过对 LLM 添加额外的指令,它们可以改变输出的语调,例如,要求它专注于生成代码而不是文本,或提供更简单或更短的输出.
调用角色
从笔记本工具栏中的聊天设置按钮中选择一个角色,以将其设为该笔记本的默认角色. 要将单个聊天指向一个角色,请在聊天输入单元的开头输入 @角色.
当在特定聊天单元中直接与某个角色聊天时,该角色会收到之前的全部历史记录. 但在该角色做出响应后,后续聊天单元将恢复使用当前的默认角色.
可以使用 聊天笔记本设置 菜单从 Wolfram 提示存储库(Prompt Repository) 或其他来源添加角色.
使用提示存储库中的角色
从 添加和管理角色 对话框中,在 提示存储库 中找到所需的角色,然后单击右上角的安装按钮. 然后只需在聊天输入单元中使用 @角色:
使用其他来源的角色
在 添加和管理角色 对话框中,输入要安装角色的有效提示定义笔记本的 URL.
提示修饰符
使用提示修饰符
有些修饰符提示接受参数,参数在 | 之后添加. 点击 #modifier 框,然后添加 "| parameter":
查找提示修饰符
在提示存储库中找到所需的修饰符,然后在聊天输入单元中使用它即可.
提示可以通过 LLMPrompt 或 LLMResourceFunction 以编程方式使用.
函数提示
函数提示接受输入并执行操作以生成输出. 示例包括代码和文本生成以及编辑.
使用函数提示
指定输入
默认情况下,函数提示使用聊天输入的内容作为其参数,但您可以改为引用以前的笔记本内容.
> — 使用聊天输入单元中的文本作为参数(默认)
^ — 使用聊天笔记本中前面的单元作为参数
^^ — 使用聊天块中所有前面的内容作为参数
查找函数提示
在提示存储库中找到所需的函数,然后在聊天输入单元中使用它即可.
提示可以通过 LLMResourceFunction 以编程方式使用.
比较提示函数和提示修饰符
有时您会面临两个选择,使用函数提示或提示修饰符. 这两个选择看起来相似. 函数提示作用于给定的输入,而提示修饰符会修改来自 LLM 的响应,它们将提供不同的结果.
例如,"!Translate" 会翻译您提供的文本,"#Translated" 会提出问题,然后翻译答案:
聊天对话管理
与其他 Wolfram 笔记本不同,在聊天笔记本中,历史记录是物理性的而不是时间性的. 聊天单元对它们上方的单元是"有意识的". 这意味着在处理聊天输入时,单元的顺序是重要的.
聊天记录
发送到 LLM 的聊天历史记录包括所有单元类型,而不仅仅是聊天输入和输出. 这意味着您可以在文本单元中编写注释或在 Wolfram 语言输入单元中编写代码并向 LLM 提问:
必要时,更多信息会添加到历史记录中. 例如,如果生成堆栈跟踪,它将包含在消息单元中.
Wolfram 系统自动修剪发送给 LLM 的内容. 例如,对于大型输出会生成汇总. 在长笔记本中,笔记本的内容有时会从顶部被忽略.
创建聊天块
聊天块是一组单元,从当前聊天输入开始,并向上延伸到最近的聊天分隔符单元或笔记本的顶部.
聊天块中的聊天输入独立于块外的笔记本内容. 这提供了一种便捷方法,以在不同角色或 LLM 模型之间切换. 在长笔记本中使用聊天块还可以通过减少发送到 LLM 的聊天历史记录量,来帮助避免使用过多令牌(Token).
通过按下波浪符(~)或从 插入单元 菜单中选择 ChatDelimiter 来开始一个新的聊天块.
这将创建一个灰色的分隔符. 分隔符后的聊天输入与分隔符前的笔记本内容是独立的:
其他分隔符
聊天块分隔符既充当聊天定界符又作为一个章节标题. 正常的章节样式,如 Section 或 Subsection,不能起到聊天定界符的作用.
如果只需要一个单个单元,以将其前后的聊天分开,可以通过键入额外的引号 (' ') 创建侧边聊天单元:
修改输出
重新运算聊天输入时,将保留先前的输出. 左右箭头可让您查看较早的结果:
如果 LLM 犯了错误,可以通过修改输出来教导它. 同一个聊天块中的后续聊天将“看到”修正后的输出,因此在同一个聊天块中再犯同样错误的可能性将会降低.
聊天设置
可以在多个不同级别进行设置:单元、章节、笔记本和全局. 许多设置是相同的,只是影响的范围发生了变化.
所有级别都包括从可用角色和 LLM 模型中进行选择以及调节温度(这会影响响应的随机性)的设置.
笔记本级菜单添加了一个复选框来启用人工智能聊天功能(如果它们当前关闭)和一个复选框来启用自动结果分析,这有助于编码任务、识别错误并提出建议. 如果启用,所有输出和聊天历史记录都会自动发送到 LLM.
添加和管理角色 (Add & Manage Personas) 提供一个对话框,用于控制出现在菜单中的已安装角色,删除角色,以及从提示存储库安装新角色.
添加和管理工具 (Add & Manage Tools) 提供一个对话框,用于从 LLM 工具存储库或其他位置安装工具,并为特定的角色启用它们.
全局 AI 设置对话框允许设置默认角色、模型和温度,并显示已安装角色的列表.