[Delphi Tip] เขียนคำถาม ChatGPT บน Delphi กัน
Delphi ก็สามารถเชื่อม api ของ ChatGPT ได้เช่นกัน (จริงๆมีคนเขียนไว้อยู่นะ หาดูใน youtube ได้)
ลองมาเขียนกันเล่นๆ ดู
เขียนโค้ดได้ตามนี้เลยครับ
1. ไปสมัคร เพื่อขอรับ key จาก เว็บนี้ก่อนนะคับ
https://beta.openai.com/account/api-keys
2. แล้วรอ เอา key มาใส่ในโปรเจ็กเราครับ
3. สร้างโปรเจ็ก ขึ้นมาครับ
ตามรูปนี้เลย
4. เขียนคำสั่งปุ่ม ” ส่งคำถาม ”
procedure Tstart_f.cxButton1Click(Sender: TObject);
var
LPostdata: string;
LPostDataStream: TStringStream;
begin
LPostData := ‘{‘ +
‘”model”: “text-davinci-003″,’+
‘”prompt”: “‘ + Memo_Q.Text + ‘”,’+
‘”max_tokens”: 2048,’+
‘”temperature”: 0’+
‘}’;
LPostDataStream := TStringStream.Create( LPostData, TEncoding.UTF8);
NetHTTPClient1.CustomHeaders[‘Authorization’] := ‘Bearer ‘ + MyGPTKey;
NetHTTPClient1.CustomHeaders[‘Content-Type’] := ‘application/json’;
LPostDataStream.Position := 0;
NetHTTPClient1.Post(‘https://api.openai.com/v1/completions’, LPostDataStream );
end;
5. ต่อมาเขียน event ของ NetHTTPClient1 ชื่อ event = OnRequestCompleted
ตามรูปนี้
procedure Tstart_f.NetHTTPClient1RequestCompleted(const Sender: TObject;
const AResponse: IHTTPResponse);
var
LString, ansStr : string;
LJson: TJsonObject; //System.JSON,
vContent: TJSONArray;
vContentRow: TJSONObject;
begin
if AResponse.StatusCode = 200 then
begin
LString := AResponse.ContentAsString;
LJson := TJSONObject.ParseJSONValue(LString) as TJSONObject;
try
vContent := TJSONArray(LJson.Get(‘choices’).JsonValue);
vContentRow := TJSONObject(vContent.Items[0]);
ansStr := vContentRow.GetValue(‘text’).Value;
finally
LJson.Free;
end;
end
else
ansStr := ‘HTTP response code: ‘ + AResponse.StatusCode.ToString;
cxMemo_json.Lines.Clear;
cxMemo_json.Lines.Add( LString );
cxMemo_result.Lines.Clear;
cxMemo_result.Lines.Add( ansStr );
end;
6. กำหนดให้ NetHTTPRequest1 ชี้ไปยัง client = NetHTTPClient1 ด้วยนะครับ
7. เสร็จแล้วก็รันได้เลย
อ้อ คำถาม เป็นภาษาไทยก็ได้ (แต่จะประมวลผลนานหน่อย) แต่ถ้าเป็นคำถามภาษาอังกฤษ ก็จะเร็วกว่าครับ
8. หรือดาวโหลด ไฟล์ exe ของโปรเจ็กนี้ไปทดสอบดูครับ
***
ANTChatGPT_v1 (6 downloads )
***
สำหรับ ผู้สนใจที่ได้อบรม Delphi กับผมไปแล้วนะครับ
ลองทำตามดูครับ ฝึกประสบการณ์กันต่อไปครับ
ขอบคุณที่ติดตาม แล้วพบกันใหม่ครับ