ChatObject
更多信息和选项
- ChatObject 将完整对话与消息元数据存储在一起.
- 初始化 init 可接受以下的值:
-
"text" 静态文字 LLMPrompt["name"] 存储库提示 StringTemplate[…] 模板化文本 TemplateObject[…] 用来创建提示的模板 Image[…] 图像 {prompt1,…} 提示列表 {msg1,…} 消息列表 - 非消息的 init 值可通过 "Role""System" 转换为消息.
- 通过 TemplateObject[…][],模板对象被自动转换为消息内容.
- 使用 TemplateObject 创建的提示可以包含文本和图像.并非所有 LLM 都支持图像输入.
- 当初始化是消息列表时,每条消息必须是含有以下键的关联:
-
"Content" content 消息的内容 "Role" String 参与者的角色 "Timestamp" DateObject 消息的时间戳(可选) - 可能的 content 形式有:
-
"text" 字符串 Image[…] 图像对象 <|"Type""Text","Data"data|> 明确的文本部分 <|"Type""Image","Data"data|> 明确的图像部分(支持 File[…] 对象) {content1,…} 多部分的内容 - "Role" 的可能值包括:
-
"Assistant" LLM 生成的消息 "System" 系统消息 "Tool" 自动生成的工具响应 "User" 用户消息 - 可指定以下选项:
-
Authentication Automatic 认证方式 LLMEvaluator $LLMEvaluator 使用的 LLM 配置 - LLMEvaluator 可被设为 LLMConfiguration 对象或含有以下任意键的关联:
-
"MaxTokens" 生成词元的最大数量 "Model" 基础模型 "PromptDelimiter" 要在提示之间插入的字符串 "Prompts" 初始提示或 LLMPromptGenerator 对象 "StopTokens" 用来指示停止生成的词元 "Temperature" 采样温度 "ToolMethod" 用于工具调用的方法 "Tools" 使用的 LLMTool 对象列表 "TopProbabilities" 采样类别截止 "TotalProbabilityCutoff" 采样截止概率(核心采样) - "Model" 的有效形式包括:
-
name 已命名模型 {service,name} 来自 service 的已命名模型 <|"Service"service,"Name"name,"Task"task|> 完全指定的模型 - 生成的文本采样自一个分布. 可用 LLMEvaluator 的以下属性指定采样的详细信息:
-
"Temperature"t Automatic 用正的温度 t 进行采样 "TopProbabilities"k Automatic 仅在 k 个最高概率类别中进行采样 "TotalProbabilityCutoff"p Automatic 在最有可能的选择中采样,累积概率至少为 p(核心采样) - 这些参数的 Automatic 值使用指定 "Model" 的默认值.
- "ToolMethod" 的可能值包括:
-
"Service" 依靠 service 的工具机制 "Textual" 使用的基于提示的工具调用 - Authentication 的可能的值为:
-
Automatic 自动选择认证方式 Environment 检查环境变量中的密钥 SystemCredential 检查系统钥匙串中的密钥 ServiceObject[…] 从服务对象继承认证 "string" 提供明确的 API 密钥 - 在 AuthenticationAutomatic 下,该函数检查 Environment 和 SystemCredential 中的变量 ToUpperCase[service]<>"_API_KEY";否则使用 ServiceConnect[service].
- 可以使用 ChatObject[…][prop] 提取聊天对象的属性.
- prop 可取的值包括:
-
"ChatID" 对话的唯一 ID "FullText" 对话的字符串表示 "LLMEvaluator" 存储的 LLMConfiguration "MessageGrid" 对话的排列布局 "Messages" 交换的消息列表 "Properties" 所有可用属性的列表 "Usage" 累积的 API 使用情况(调用、词元、…) {prop1,…} 属性列表
范例
打开所有单元 关闭所有单元基本范例 (2)
chat = ChatObject[]chat = ChatEvaluate[chat, "What's the tallest mountain?"]chat["Messages"]toolchat = ChatObject[LLMEvaluator -> <|"Tools" -> LLMTool["countcharacter", "string", StringLength]|>]ChatEvaluate[toolchat, "How many letters in the word \"characters\" (use the tool) ?"]范围 (5)
ChatObject[]chat = ChatObject["always talk like a pirate. always stay in character."]chat//=ChatEvaluate["who are you?"]ChatObject[{<|"Role" -> "User", "Content" -> "What's the tallest mountain?", "Timestamp" -> DateObject[{2023, 4, 3, 17, 55, 43.705775}, "Instant", "Gregorian", 2.]|>, <|"Role" -> "Assistant", "Content" -> "The tallest mountain is Mount Everest, which stands at 29,029 feet (8,848 meters) tall.", "Timestamp" -> DateObject[{2023, 4, 3, 17, 55, 43.}, "Instant", "Gregorian", 2.]|>}]ChatObject[Association["LLMEvaluator" -> LLMConfiguration[
Association["Model" -> Association["Service" -> "OpenAI", "Name" -> "gpt-4"],
"MaxTokens" -> Automatic, "Temperature" -> Automatic, "TotalProbabilityCutoff" -> Automatic,
"P ... 1.}, {21.00040054321289, 21.}}}]},
FaceForm[RGBColor[0.5372549019607843, 0.5372549019607843, 0.5372549019607843, 1.]]]},
ImageSize -> {{27., 27.}, {27., 27.}}, PlotRange -> {{-0.5, 26.5}, {-0.5, 26.5}},
AspectRatio -> Automatic]]]["FullText"]ChatObject[Association["LLMEvaluator" -> LLMConfiguration[
Association["Model" -> Association["Service" -> "OpenAI", "Name" -> "gpt-4"],
"MaxTokens" -> Automatic, "Temperature" -> Automatic, "TotalProbabilityCutoff" -> Automatic,
"P ... 1.}, {21.00040054321289, 21.}}}]},
FaceForm[RGBColor[0.5372549019607843, 0.5372549019607843, 0.5372549019607843, 1.]]]},
ImageSize -> {{27., 27.}, {27., 27.}}, PlotRange -> {{-0.5, 26.5}, {-0.5, 26.5}},
AspectRatio -> Automatic]]][{"ChatID", "Messages"}]ChatObject[Association["LLMEvaluator" -> LLMConfiguration[
Association["Model" -> Association["Service" -> "OpenAI", "Name" -> "gpt-4"],
"MaxTokens" -> Automatic, "Temperature" -> Automatic, "TotalProbabilityCutoff" -> Automatic,
"P ... 1.}, {21.00040054321289, 21.}}}]},
FaceForm[RGBColor[0.5372549019607843, 0.5372549019607843, 0.5372549019607843, 1.]]]},
ImageSize -> {{27., 27.}, {27., 27.}}, PlotRange -> {{-0.5, 26.5}, {-0.5, 26.5}},
AspectRatio -> Automatic]]]["Properties"]选项 (1)
可能存在的问题 (1)
ChatEvaluate[ChatObject[Entity["TaxonomicSpecies", "SusScrofa::s42j5"]["Image"]], "Can you see the image?", LLMEvaluator -> {"Model" -> {"OpenAI", "gpt-4o"}}]ChatEvaluate[ChatObject[Entity["TaxonomicSpecies", "SusScrofa::s42j5"]["Image"]], "Can you see the image?", LLMEvaluator -> {"Model" -> {"OpenAI", "gpt-4-vision-preview"}}]ChatEvaluate[ChatObject[{<|"Role" -> "User", "Type" -> "Image", "Content" -> Entity["TaxonomicSpecies", "SusScrofa::s42j5"]["Image"]|>}], "Can you see the image?", LLMEvaluator -> {"Model" -> {"OpenAI", "gpt-4o"}}]文本
Wolfram Research (2023),ChatObject,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ChatObject.html (更新于 2025 年).
CMS
Wolfram 语言. 2023. "ChatObject." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2025. https://reference.wolfram.com/language/ref/ChatObject.html.
APA
Wolfram 语言. (2023). ChatObject. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ChatObject.html 年
BibTeX
@misc{reference.wolfram_2026_chatobject, author="Wolfram Research", title="{ChatObject}", year="2025", howpublished="\url{https://reference.wolfram.com/language/ref/ChatObject.html}", note=[Accessed: 16-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_chatobject, organization={Wolfram Research}, title={ChatObject}, year={2025}, url={https://reference.wolfram.com/language/ref/ChatObject.html}, note=[Accessed: 16-September-2026]}