ChatGPT 是 OpenAI 开发的大型语言模型。它使用一种称为无监督学习的技术进行训练,这意味着它被输入大量文本数据集,并学习根据前面的词语预测序列中的下一个词语。这使 ChatGPT 能够生成类人文本,可用于多种目的,如在聊天机器人中生成对用户输入的响应,或为网站和社交媒体生成内容。
ChatGPT 的主要功能之一是理解上下文并根据对话生成适当响应的能力。例如,如果您向 ChatGPT 提问,它将生成与问题相关且符合对话自然流程的响应。这得益于该模型能够"记住"对话中的先前陈述并使用该信息来指导其响应。
ChatGPT 的另一个重要功能是生成多样化响应的能力。由于它在大量文本数据集上进行了训练,它拥有广泛的知识,可以生成适合不同情境和主题的响应。这使它成为在聊天机器人中生成用户响应的有用工具,因为无论对话主题如何,它都可以提供相关且引人入胜的响应。
总体而言,ChatGPT 是一个强大的语言模型,可以生成类人文本并理解上下文和对话流程。它有广泛的应用,包括聊天机器人、内容生成和语言翻译,有可能彻底改变我们与技术交互的方式。
ChatGPT 目前没有独立 API,但您可以使用 OpenAI beta API 与 GPT-3 文本转换器交互,您只需要一个 API 密钥,可以从以下地址获取:
https://beta.openai.com/account/api-keys
开始与 API 交互。
GPT-3 Delphi 代码
获取 API 密钥后,与 API 交互非常简单。以下是使用 sgcWebSockets 库交互的示例代码。
function AskChatGPT(const aAPI, aQuestion: string): string;
var
oHTTP: TsgcHTTP1Client;
oStream: TStringStream;
vPostData: string;
oJSON: TJSONValue;
oArray: TJSonArray;
begin
oHTTP := TsgcHTTP1Client.Create(nil);
Try
oHTTP.Request.CustomHeaders.Add('Authorization: Bearer ' + aAPI);
oHTTP.Request.ContentType := 'application/json';
vPostData :=
Format('{"model": "text-davinci-003","prompt": "%s","max_tokens": 2048,"temperature": 0}',
[aQuestion]);
// send request
oStream := TStringStream.Create(vPostData);
Try
result := oHTTP.Post('https://api.openai.com/v1/completions', oStream);
// parse response
oJSON := TJSonObject.ParseJSONValue(result).GetValue<TJSONValue>
('choices');
result := TJSonArray(oJSON).Items[0].GetValue<TJSONString>('text').Value;
Finally
oStream.Free;
End;
Finally
oHTTP.Free;
End;
end;
该函数有 2 个参数:
API:是从 https://beta.openai.com/account/api-keys 获取的 API 密钥。
Question(问题):是包含问题的消息。
API 密钥作为 Bearer Token 发送,消息使用 JSON 对象编码。服务器以 JSON 对象形式返回响应,其中可以找到文本消息。

Find below the full project and the compiled executable for Windows.
