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

使用Betalgo.OpenAI SDK调用ChatGPT模型遇端点错误的解决问询

解决Betalgo.OpenAI SDK调用GPT-3.5/4时的端点错误问题

问题描述

我在C#中使用Betalgo.OpenAI SDK编写了以下代码:

var openAiService = new OpenAIService(new OpenAiOptions()
{
    ApiKey = "abc",
    Organization = "org-def"
});

var completionResult = await openAiService.Completions
  .CreateCompletion(new CompletionCreateRequest()
  {
    Prompt = "Once upon a time",
    MaxTokens = 20,
    Model = Models.Gpt_4
  }); 

已填写正确的APIKey和Organization,但收到错误提示:

This is a chat model and not supported in the v1/completions endpoint.
Did you mean to use v1/chat/completions?

切换为Models.Gpt_3_5_Turbo调用ChatGPT 3.5后,仍出现相同错误。

解决方案

问题核心在于:GPT-3.5 Turbo、GPT-4属于聊天模型,必须使用专门的ChatCompletion端点,而非普通的Completions端点。Betalgo.OpenAI SDK针对不同类型的模型提供了不同的服务入口和请求对象:

  • 普通文本补全模型(如GPT-3系列的text-davinci-003):使用openAiService.Completions + CompletionCreateRequest
  • 聊天模型(GPT-3.5/4):使用openAiService.ChatCompletion + ChatCompletionCreateRequest

修改后的完整代码如下:

var openAiService = new OpenAIService(new OpenAiOptions()
{
    ApiKey = "abc",
    Organization = "org-def"
});

var completionResult = await openAiService.ChatCompletion
    .CreateCompletion(new ChatCompletionCreateRequest()
    {
       Messages = new List<ChatMessage>()
        {
            new ChatMessage("user", "Once upon a time")
        },
       MaxTokens = 20,
       Model = Models.Gpt_3_5_Turbo
    });

关键修改点

  • 服务入口从openAiService.Completions改为openAiService.ChatCompletion
  • 请求对象从CompletionCreateRequest替换为ChatCompletionCreateRequest
  • 原Prompt参数替换为Messages列表,每个消息需指定角色(如user)和对应内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:22:40