แหล่งที่มาของแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยของ GPT นี้ ให้มองหาการอัปเดตก่อนที่คุณจะใช้เคล็ดลับเหล่านี้หากมีการแยกส่วน!
ในฐานะผู้ชื่นชอบโมเดลภาษา AI ฉันมักจะพบว่าตัวเองตื่นตระหนกกับวิธีที่ข้อมูลที่ละเอียดอ่อนได้รับการจัดการอย่างไม่ระมัดระวังในแอปพลิเคชันต่างๆ แม้ว่าความตื่นเต้นเกี่ยวกับ GPT จะเป็นที่เข้าใจได้ แต่การจัดการข้อมูลที่ละเอียดอ่อนอย่างไม่เหมาะสมทำให้เกิดความท้าทายที่สำคัญสำหรับผู้ดูแลระบบและผู้เชี่ยวชาญด้านความปลอดภัยในการจัดการเซิร์ฟเวอร์ที่ลูกค้าเช่า เอกสารนี้มีจุดมุ่งหมายเพื่อให้แนวทางปฏิบัติที่ดีที่สุดในการนำ GPT ไปใช้อย่างปลอดภัยในเว็บแอปพลิเคชัน เพื่อป้องกันช่องโหว่ด้านความปลอดภัยและปกป้องข้อมูลที่ละเอียดอ่อน
วัตถุประสงค์ของเอกสารนี้คือเพื่อสรุปความเสี่ยงด้านความปลอดภัยและช่องโหว่ที่อาจเกิดขึ้นเมื่อใช้ GPT ในเว็บแอปพลิเคชัน และเพื่อให้แนวทางปฏิบัติที่ดีที่สุดในการลดความเสี่ยงเหล่านี้
<?php
$ api_key = " your_api_key_here " ;
$ request_url = " https://api.openai.com/v1/engines/davinci-codex/completions " ;
ส่วนหน้า (JavaScript พร้อม jQuery)
function sendRequest ( inputText ) {
$ . ajax ( {
url : 'backend.php' ,
type : 'POST' ,
data : { input : inputText } ,
success : function ( response ) {
// Process and display the response from GPT
} ,
error : function ( ) {
// Handle error cases
}
} ) ;
}
แบ็กเอนด์ (PHP)
<?php
$ api_key = " your_api_key_here " ;
$ request_url = " https://api.openai.com/v1/engines/davinci-codex/completions " ;
$ inputText = $ _POST [ ' input ' ];
// Process the input and send a request to GPT
// Return the response to the front-end
คุณสามารถจัดเก็บคีย์ API ของคุณเป็นตัวแปรสภาพแวดล้อมได้โดยการเพิ่มลงในการกำหนดค่าสภาพแวดล้อมของเซิร์ฟเวอร์ของคุณ หรือโดยใช้ไฟล์ .env (ด้วยความช่วยเหลือจากไลบรารี เช่น PHP dotenv)
สร้างไฟล์ .env ในไดเรกทอรีรากของโปรเจ็กต์ของคุณ:
GPT_API_KEY=your_api_key_here
ติดตั้งแพ็คเกจ vlucas/phpdotenv โดยใช้ Composer:
composer require vlucas/phpdotenv
โหลดตัวแปรสภาพแวดล้อมจากไฟล์ .env ในสคริปต์ PHP ของคุณ:
<?php
require_once ' vendor/autoload.php ' ;
use Dotenv Dotenv ;
$ dotenv = Dotenv:: createImmutable ( __DIR__ );
$ dotenv -> load ();
เข้าถึงคีย์ API จากตัวแปรสภาพแวดล้อม:
<?php
$ api_key = getenv ( ' GPT_API_KEY ' );
$ request_url = " https://api.openai.com/v1/engines/davinci-codex/completions " ;
เมื่อใช้ตัวแปรสภาพแวดล้อม คีย์ API ของคุณจะถูกเก็บไว้อย่างปลอดภัยและแยกออกจากซอร์สโค้ดของคุณ อย่าลืมเพิ่มไฟล์ .env ลงในไฟล์ .gitignore ของคุณ เพื่อป้องกันไม่ให้ไฟล์ถูกส่งไปยังพื้นที่เก็บข้อมูลสาธารณะของคุณโดยไม่ได้ตั้งใจ
แบ็กเอนด์ (PHP)
<?php
// Sanitize user input before processing
$ inputText = filter_input ( INPUT_POST , ' input ' , FILTER_SANITIZE_STRING );
ใช้ HTTPS เพื่อการสื่อสารที่ปลอดภัย เมื่อปรับใช้เว็บแอปพลิเคชันของคุณ ตรวจสอบให้แน่ใจว่าคุณใช้ HTTPS เพื่อเข้ารหัสการสื่อสารระหว่างไคลเอนต์และเซิร์ฟเวอร์ ป้องกันการโจมตีแบบแทรกกลาง
จำกัดอัตราการร้องขอ API เพื่อป้องกันการใช้คีย์ GPT API ในทางที่ผิดและควบคุมต้นทุน ให้ใช้การจำกัดอัตรากับโค้ดฝั่งเซิร์ฟเวอร์ของคุณ วิธีนี้จะจำกัดจำนวนคำขอที่ส่งไปยัง GPT API ภายในกรอบเวลาที่กำหนด
แบ็กเอนด์ (PHP)
<?php
// Implement rate-limiting logic here
// ...
// Only proceed with the request if the rate limit is not exceeded
if ( $ is_rate_limit_ok ) {
// Send a request to GPT API
}
ใช้นโยบายความปลอดภัยเนื้อหา (CSP) ใช้ส่วนหัว CSP เพื่อป้องกันการโจมตี XSS และช่องโหว่อื่นๆ โดยการควบคุมทรัพยากรที่ตัวแทนผู้ใช้ได้รับอนุญาตให้โหลดสำหรับเพจที่กำหนด
ใช้ส่วนหัวการรักษาความปลอดภัย ใช้ส่วนหัวการรักษาความปลอดภัย เช่น X-Frame-Options, X-Content-Type-Options และอื่นๆ เพื่อปกป้องแอปพลิเคชันของคุณจากช่องโหว่ด้านความปลอดภัยทั่วไป
เมื่อใช้งาน GPT การเลือกปลายทาง API ที่เหมาะสมตามกรณีการใช้งานเฉพาะของคุณเป็นสิ่งสำคัญ OpenAI มีอุปกรณ์ปลายทางที่หลากหลายเพื่อวัตถุประสงค์ที่แตกต่างกัน นี่คือตำแหน่งข้อมูล OpenAI ในปัจจุบัน:
จุดสิ้นสุด | ชื่อรุ่น |
---|---|
/v1/แชท/เสร็จสิ้น | gpt-4, gpt-4-0314,gpt-4-0613, gpt-4-32k, gpt-4-32k-0314, gpt-3.5-เทอร์โบ, gpt-3.5-turbo-0301, gpt-3.5-turbo- 0613, gpt-3.5-เทอร์โบ-16k, gpt-3.5-เทอร์โบ-16k-0613. |
/v1/เสร็จสิ้น | ada, ada-code-search-code, ada-code-search-text, ada-search-document, ada-search-query, ada-similarity, babbage, babbage-code-search-code, babbage-code-search- ข้อความ, babbage-search-document, babbage-search-query, babbage-similarity, code-davinci-edit-001, รหัสค้นหา ada-รหัส-001, รหัส-ค้นหา-ada-text-001, รหัส-ค้นหา-babbage-รหัส-001, รหัส-ค้นหา-babbage-text-001, curie, curie-instruct-beta, curie- ค้นหาเอกสาร, curie-ค้นหา-query, curie-ความคล้ายคลึง, davinci, davinci-instruct-beta, davinci-search-document, davinci-search-query, davinci-similarity, text-ada-001, text-babbage-001, text-curie-001, text-davinci-001, text-davinci-002, text-davinci-003, text-davinci- แก้ไข-001, การฝังข้อความ-ada-002, ข้อความค้นหา-ada-doc-001, ข้อความค้นหา ada-query-001, ข้อความค้นหา-babbage-doc-001, ข้อความค้นหา-babbage-query-001, ข้อความค้นหา-curie-doc-001, ข้อความค้นหา-curie-query-001, ข้อความค้นหา davinci-doc-001, ข้อความค้นหา davinci-query-001, ข้อความที่คล้ายคลึงกัน-ada-001, ข้อความความคล้ายคลึงกัน-babbage-001, ข้อความความคล้ายคลึงกัน-curie-001, ข้อความความคล้ายคลึงกัน-davinci-001 |
/v1/แก้ไข | ข้อความ-davinci-edit-001, รหัส-davinci-edit-001 |
/v1/เสียง/การถอดเสียง | กระซิบ-1 |
/v1/เสียง/การแปล | กระซิบ-1 |
/v1/ปรับแต่ง | ดาวินซี, คูรี, แบบเบจ, เอดา |
/v1/การฝัง | ข้อความฝัง-ada-002, ข้อความค้นหา-ada-doc-001, ข้อความค้นหา-ada-query-001, ข้อความค้นหา-babbage-doc-001, ข้อความค้นหา-babbage-query-001, ข้อความ- search-curie-doc-001, ข้อความค้นหา-curie-query-001, ข้อความค้นหา-davinci-doc-001, ข้อความค้นหา davinci-query-001 |
/v1/การกลั่นกรอง | การกลั่นกรองข้อความล่าสุด, การกลั่นกรองข้อความที่เสถียร |
จุดสิ้นสุดที่แตกต่างกันมีค่าใช้จ่ายที่แตกต่างกันต่อโทเค็นหรือต่อคำขอ เลือกอุปกรณ์ปลายทางที่เหมาะกับงบประมาณของคุณ
อุปกรณ์ปลายทางบางเครื่องมีเวลาตอบสนองที่เร็วกว่า ในขณะที่บางเครื่องเหมาะสำหรับงานหนักมากกว่า พิจารณาความต้องการด้านประสิทธิภาพของแอปพลิเคชันของคุณเมื่อเลือกตำแหน่งข้อมูล
แต่ละจุดมีจุดแข็งและจุดอ่อนของตัวเอง ประเมินข้อกำหนดเฉพาะของแอปพลิเคชันของคุณ และเลือกตำแหน่งข้อมูลที่ตรงกับความต้องการเหล่านั้นมากที่สุด
ตัวอย่างวิธีใช้ตำแหน่งข้อมูล /v1/chat/completions กับโมเดล gpt-3.5-turbo ในเว็บแอปพลิเคชัน
อัปเดต $request_url ในสคริปต์ PHP ส่วนหลังของคุณ:
<?php
$ api_key = getenv ( ' GPT_API_KEY ' );
$ request_url = " https://api.openai.com/v1/chat/completions " ;
สร้างฟังก์ชันเพื่อส่งคำขอไปยัง GPT API:
<?php
function send_chat_completion_request ( $ api_key , $ request_url , $ messages ) {
$ ch = curl_init ();
$ data = array (
' model ' => ' gpt-3.5-turbo ' ,
' messages ' => $ messages
);
curl_setopt ( $ ch , CURLOPT_URL , $ request_url );
curl_setopt ( $ ch , CURLOPT_POST , 1 );
curl_setopt ( $ ch , CURLOPT_POSTFIELDS , json_encode ( $ data ));
curl_setopt ( $ ch , CURLOPT_RETURNTRANSFER , true );
curl_setopt ( $ ch , CURLOPT_HTTPHEADER , array (
" Content-Type: application/json " ,
" Authorization: Bearer $ api_key "
));
$ response = curl_exec ( $ ch );
$ httpcode = curl_getinfo ( $ ch , CURLINFO_HTTP_CODE );
curl_close ( $ ch );
return array ( ' response ' => $ response , ' httpcode ' => $ httpcode );
}
เรียกใช้ฟังก์ชัน send_chat_completion_request() และประมวลผลการตอบสนอง GPT API:
<?php
$ inputText = filter_input ( INPUT_POST , ' input ' , FILTER_SANITIZE_STRING );
$ messages = array (
array ( ' role ' => ' system ' , ' content ' => ' You are talking to a helpful assistant. ' ),
array ( ' role ' => ' user ' , ' content ' => $ inputText )
);
$ result = send_chat_completion_request ( $ api_key , $ request_url , $ messages );
if ( $ result [ ' httpcode ' ] == 200 ) {
$ json_response = json_decode ( $ result [ ' response ' ], true );
$ assistant_reply = $ json_response [ ' choices ' ][ 0 ][ ' message ' ][ ' content ' ];
// Return the response to the front-end
echo $ assistant_reply ;
} else {
// Handle error cases
echo " Error: " . $ result [ ' response ' ];
}
ตัวอย่างนี้แสดงวิธีใช้ตำแหน่งข้อมูล /v1/chat/completions กับโมเดล gpt-3.5-turbo ฟังก์ชัน send_chat_completion_request() ส่งคำขอไปยัง API พร้อมด้วยข้อความที่ป้อนและรับการตอบกลับที่สร้างขึ้น จากนั้นการตอบกลับของผู้ช่วยจะถูกส่งกลับไปยังส่วนหน้า
แหล่งข้อมูลเพิ่มเติมและหมายเหตุที่อาจเป็นประโยชน์สำหรับการทำความเข้าใจและการนำแนวทางปฏิบัติที่ดีที่สุดที่กล่าวถึงในเอกสารนี้ไปใช้
เอส. โวลคาน คูชุคบูดัก
หากคุณพบว่าโครงการนี้มีประโยชน์และต้องการสนับสนุน มีหลายวิธีในการดำเนินการดังนี้:
ขอบคุณสำหรับการสนับสนุนของคุณ!