You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OpenAI-Unity包调用ChatGPT时遇JsonSerializationException错误求助

JsonSerializationException: Could not find member 'logprobs' on object of type 'ChatChoice' (OpenAI-Unity + Unity 2022.3.8)

问题详情

在Unity 2022.3.8中使用OpenAI-Unity包开发AI对话功能,已正确配置API密钥并按教程操作,但运行示例场景发送消息时触发以下错误:

JsonSerializationException: Could not find member 'logprobs' on object of type 'ChatChoice'. Path 'choices[0].logprobs', line 13, position 17. ...

触发错误的代码片段:

var completionResponse = await openai.CreateChatCompletion(new CreateChatCompletionRequest()
{
    Model = "gpt-3.5-turbo-0613",
    Messages = messages
});

已尝试调整代码格式、补充参数,问题未解决。

解决方案

1. 给ChatChoice类添加logprobs字段

找到包内的ChatChoice类(通常位于OpenAI/Api/Chat目录下),补充对应属性:

public class ChatChoice
{
    // 保留原有属性
    [JsonProperty("logprobs")]
    public ChatLogprobs Logprobs { get; set; }
}

如果包内已有ChatLogprobs类,直接使用该类型;若没有,可先定义为object类型临时兼容。

2. 配置序列化器忽略未知字段

该包默认使用Newtonsoft.Json,可通过修改序列化设置忽略API返回的未定义字段:

var jsonSettings = new JsonSerializerSettings
{
    MissingMemberHandling = MissingMemberHandling.Ignore
};
var openai = new OpenAIClient(yourApiKey, jsonSettings);

3. 升级OpenAI-Unity包到最新版本

该问题多因包版本未同步OpenAI API的字段更新,升级到仓库最新版本后,通常已兼容logprobs字段的返回结构。

内容的提问来源于stack exchange,提问作者dylbomb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 21:17:16