我正在使用ChatGPT和 Delphi ,使用OpenAI库:https://github.com/HemulGM/DelphiOpenAI,支持流媒体,但我搞不清楚流媒体的ChatGPT机制,我可以创建一个Chat,一条返回消息就能把所有数据都拿回来。
然而,当我尝试使用流式传输时,我得到一个错误。下面的控制台代码工作正常。我提交我的聊天,我在一个“事件”中得到整个答案。我希望与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 'The input value is not a valid Object',这导致ChatGPT返回'Empty or Invalid Response'。
1条答案
按热度按时间egdjgwm81#
因为在这种模式下,它在这种情况下不是用JSON对象响应,而是用自己的特殊格式响应。
我可以开始为图书馆设计这样的模式。