Azure.AI.OpenAI包报错:ChatCompletionsOptions.Messages只读无法赋值
解决方案:ChatCompletionsOptions.Messages 只读属性赋值错误
错误原因
Azure.AI.OpenAI 包中 ChatCompletionsOptions 的 Messages 属性仅提供只读访问器(getter),没有设置器(setter),因此无法直接通过 options.Messages = new List<ChatMessage>() 这类方式赋值整个集合,只能对属性返回的集合实例进行元素添加操作。
可行的赋值方式
方式1:使用集合初始化器初始化
创建 ChatCompletionsOptions 实例时,直接通过集合初始化语法向 Messages 中添加元素:
using Azure.AI.OpenAI; var chatOptions = new ChatCompletionsOptions { Messages = { new ChatMessage(ChatRole.System, "你是一个专业的技术助手"), new ChatMessage(ChatRole.User, "如何解决.NET中的CS0200错误?") } };
方式2:实例化后逐个添加元素
先创建 ChatCompletionsOptions 对象,再通过 Add 或 AddRange 方法添加消息:
using Azure.AI.OpenAI; var chatOptions = new ChatCompletionsOptions(); // 单个添加 chatOptions.Messages.Add(new ChatMessage(ChatRole.User, "我的问题内容")); // 批量添加已有消息列表 var existingMessages = new List<ChatMessage> { new ChatMessage(ChatRole.System, "系统提示词"), new ChatMessage(ChatRole.Assistant, "历史回复") }; chatOptions.Messages.AddRange(existingMessages);
关键说明
Messages 属性返回的是一个可修改的集合(通常为 IList<ChatMessage> 类型),所以你可以对其进行添加、移除、清空等操作,但不能直接替换整个集合实例。
内容的提问来源于stack exchange,提问作者shan
相关产品推荐
相关产品推荐

