用 Delphi 聊天GPT,怎么流?

tuwxkamq  于 2023-03-22  发布在  其他
关注(0)|答案(1)|浏览(153)

使用ChatGPT和 Delphi 。使用OpenAI库:https://github.com/HemulGM/DelphiOpenAI它支持流,但我不能弄清楚ChatGPT机制的流.我可以创建一个聊天,并获得所有数据在一个返回消息.然而,当我尝试使用流,我得到一个错误.下面的控制台代码工作正常.我提交我的聊天,我得到整个答案在一个“事件”.我想作为ChatGPT网站相同的行为,这样标记就会在生成时显示出来。我的代码如下...

var buf : TStringlist;
begin
...
 var Chat := OpenAI.Chat.Create(
           procedure(Params: TChatParams)
       begin
          Params.Messages([TChatMessageBuild.Create(TMessageRole.User, Buf.Text)]);
          Params.MaxTokens(1024);
         // Params.Stream(True);
        end);
       try
            for var Choice in Chat.Choices do
              begin

                Buf.Add(Choice.Message.Content);
                Writeln(Choice.Message.Content);
              end;
        finally
         Chat.Free;
      end;

这段代码工作。当我尝试打开流,我得到EConversionError '输入值不是一个有效的Object',这导致ChatGPT返回'空或无效响应'。任何想法赞赏。

r7xajy2e

r7xajy2e1#

因为在这种模式下,它在这种情况下不是用json对象来响应,而是用它自己的特殊格式来响应。

data: {"id": "cmpl-6wsVxtkU0TZrRAm4xPf5iTxyw9CTf", "object": "text_completion", "created": 1679490597, "choices": [{"text": "\r", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}

data: {"id": "cmpl-6wsVxtkU0TZrRAm4xPf5iTxyw9CTf", "object": "text_completion", "created": 1679490597, "choices": [{"text": "\n", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}

data: {"id": "cmpl-6wsVxtkU0TZrRAm4xPf5iTxyw9CTf", "object": "text_completion", "created": 1679490597, "choices": [{"text": "1", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}

data: {"id": "cmpl-6wsVxtkU0TZrRAm4xPf5iTxyw9CTf", "object": "text_completion", "created": 1679490597, "choices": [{"text": ",", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}

data: {"id": "cmpl-6wsVxtkU0TZrRAm4xPf5iTxyw9CTf", "object": "text_completion", "created": 1679490597, "choices": [{"text": " 2", "index": 0, "logprobs": null, "finish_reason": null}], "model": "text-davinci-003"}
...

我可以开始为图书馆设计这样的模式。

相关问题