แพ็คเกจ Unity อย่างไม่เป็นทางการที่ช่วยให้คุณใช้ OpenAI API โดยตรงในเอ็นจิ้นเกม Unity
คุณสามารถค้นหาบทเรียนวิดีโอเฉพาะสำหรับวิธีใช้แพ็คเกจนี้ในเพลย์ลิสต์ YouTube นี้
https://www.youtube.com/playlist?list=plre-fzieels1-c7qifzyzeq50id08fcjo

ในการนำเข้าแพ็คเกจทำตามขั้นตอนเหล่านี้:
Window > Package Manager+ และเลือก Add package from git URLAddในการใช้ OpenAI API คุณต้องมีบัญชี OpenAI ทำตามขั้นตอนเหล่านี้เพื่อสร้างบัญชีและสร้างคีย์ API:
ในการขอ OpenAI API คุณต้องใช้คีย์ API และชื่อองค์กรของคุณ (ถ้ามี) เพื่อหลีกเลี่ยงการเปิดเผยคีย์ API ของคุณในโครงการ Unity ของคุณคุณสามารถบันทึกไว้ในที่เก็บข้อมูลท้องถิ่นของอุปกรณ์ของคุณ
ในการทำเช่นนี้ให้ทำตามขั้นตอนเหล่านี้:
C:UserUserName สำหรับ windows หรือ ~ สำหรับ linux หรือ mac)auth.json ในโฟลเดอร์ .openai{
"api_key" : " sk-...W6yi " ,
"organization" : " org-...L7W "
} นอกจากนี้คุณยังสามารถส่งคีย์ API ของคุณไปยัง OpenAIApi ctor เมื่อสร้างอินสแตนซ์ของมัน แต่ไม่แนะนำอีกครั้ง!
var openai = new OpenAIApi ( " sk-Me8...6yi " ) ;สำคัญ: คีย์ API ของคุณเป็นความลับ อย่าแชร์กับผู้อื่นหรือเปิดเผยในรหัสฝั่งไคลเอ็นต์ (เช่นเบราว์เซอร์แอพ) หากคุณใช้ OpenAI สำหรับการผลิตตรวจสอบให้แน่ใจว่าได้รันบนฝั่งเซิร์ฟเวอร์ซึ่งคีย์ API ของคุณสามารถโหลดได้อย่างปลอดภัยจากตัวแปรสภาพแวดล้อมหรือบริการการจัดการคีย์
คุณสามารถใช้คลาส OpenAIApi เพื่อขอ async ไปยัง OpenAI API
วิธีการทั้งหมดเป็นแบบอะซิงโครนัสและสามารถเข้าถึงได้โดยตรงจากอินสแตนซ์ของคลาส OpenAIApi
นี่คือตัวอย่างของวิธีการขอ:
private async void SendRequest ( )
{
var req = new CreateChatCompletionRequest
{
Model = " gpt-3.5-turbo " ,
Messages = new List < ChatMessage > ( )
{
new ChatMessage ( )
{
Role = " user " ,
Content = " Hello! "
}
}
} ;
var res = await openai . CreateChatCompletion ( req ) ;
} ในการทำคำขอสตรีมคุณสามารถใช้เมธอด CreateCompletionAsync และ CreateChatCompletionAsync วิธีการเหล่านี้จะตั้งค่าคุณสมบัติ Stream ของคำขอเป็น true และส่งคืนการตอบกลับผ่านการเรียกกลับ onResponse ในกรณีนี้การตอบกลับข้อความจะถูกเก็บไว้ในคุณสมบัติ Delta ของฟิลด์ Choices ในการแชทเสร็จสิ้น
var req = new CreateChatCompletionRequest {
Model = " gpt-3.5-turbo " ,
Messages = new List < ChatMessage >
{
new ChatMessage ( )
{
Role = " user " ,
Content = " Write a 100 word long short story in La Fontaine style. "
}
} ,
Temperature = 0.7f ,
} ;
openai . CreateChatCompletionAsync ( req ,
( responses ) => {
var result = string . Join ( " " , responses . Select ( response => response . Choices [ 0 ] . Delta . Content ) ) ;
Debug . Log ( result ) ;
} ,
( ) => {
Debug . Log ( " completed " ) ;
} ,
new CancellationTokenSource ( )
) ;แพ็คเกจนี้มีสองฉากตัวอย่างที่คุณสามารถนำเข้าผ่านตัวจัดการแพ็คเกจ:
ไม่เห็นภาพผลลัพธ์ในการสร้าง WebGL: เนื่องจากนโยบาย CORS ของ OpenAI Image Storage ใน Builds Local WebGL คุณจะได้รับ URL ของภาพที่สร้างขึ้น แต่จะไม่ถูกดาวน์โหลดโดยใช้ UnityWebRequest จนกว่าคุณจะหมด LocalHost บนเซิร์ฟเวอร์
การตอบสนองแบบสตรีมนั้นว่างเปล่าในการสร้าง WebGL: Unity 2020 WebGL มีข้อผิดพลาดที่การตอบสนองของสตรีมกลับว่างเปล่า คุณสามารถอัปเดตและลองใช้ Unity เวอร์ชันใหม่กว่า
ตารางต่อไปนี้แสดงเวอร์ชัน Unity ที่รองรับสำหรับการสร้าง WebGL:
| เวอร์ชัน Unity | หน้าต่าง | ลินเวกซ์ | แม็กอส | webgl | Android | iOS | Oculus 2 |
|---|---|---|---|---|---|---|---|
| 2022.3.x | |||||||
| 2021.3.x | |||||||
| 2020.3.x | |||||||
| 2019.4.x |
| ✅ = รองรับ | ⛔ = ไม่รองรับ |
โปรดรายงานปัญหาใด ๆ ที่คุณพบกับ Builds
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการใช้พารามิเตอร์คำขอต่างๆโปรดดูเอกสาร OpenAI: https://platform.openai.com/docs/api-reference