1. สร้างการส่งคำขอ API

1.1 การส่งคำขอโดยใช้ CURL

CURL เป็นเครื่องมือบรรทัดคำสั่งที่รองรับการส่งและรับข้อมูลโดยใช้โปรโตคอลต่าง ๆ เช่น HTTP และ HTTPS ในการส่งคำขอไปยัง OpenAI API โดยใช้ CURL ในจุดเริ่มต้นคุณจำเป็นต้องมี API key ที่ถูกต้อง และเพิ่มใส่หัวข้อคำขอ

นี่คือตัวอย่างของคำสั่ง CURL ที่ใช้ส่งคำขอไปยัง OpenAI API:

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
     "model": "gpt-3.5-turbo",
     "messages": [{"role": "user", "content": "พูดว่านี่คือการทดสอบ!"}],
     "temperature": 0.7
   }'

คุณต้องแทนที่ $OPENAI_API_KEY ด้วย API key ของคุณ ด้วยเหตุผลด้านความปลอดภัย หลีกเลี่ยงการเปิดเผย API key ในสถานการณ์สาธารณะใด ๆ

1.2 การวิเคราะห์หัวข้อคำขอ

ในคำสั่ง CURL ด้านบน เราใช้สองหัวข้อคำขอที่สำคัญ: Content-Type และ Authorization

  • Content-Type: นี้แจ้งให้เซิร์ฟเวอร์ทราบว่าเรากำลังส่งข้อมูลในรูปแบบ JSON มูลค่าของมันมักจะเป็น application/json
  • Authorization: นี่คือข้อมูลรับรองความถูกต้องที่ใช้ในการพิสูจน์ตัวตนของคำขอ API และรูปแบบของมันคือ Bearer (your API key)

การให้ความถูกต้องของทั้งสองหัวข้อคำขอนี้เป็นสิ่งสำคัญสำหรับความสำเร็จของคำขอ

1.3 การสร้างส่วนของร่างคำขอ

ส่วนของร่างคำขอเป็นสตริงรูปแบบ JSON ที่แจ้งให้ OpenAI เรามีความตั้งใจอย่างไร ในคำขอนี้เราใช้ model เพื่อระบุโมเดลที่เราใช้ เป็นการส่ง messages อาเรย์ที่กำหนดข้อมูลทางเข้าของผู้ใช้ และตั้ง temperature เพื่อปรับความแปรปรวนของการตอบกลับ

JSON ดูเช่นนี้:

{
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content": "พูดว่านี่คือการทดสอบ!"}],
  "temperature": 0.7
}

ในตัวอย่างนี้ เรากำลังขอให้โมเดลสร้างคำตอบทดสอบขึ้นมาโดยขึ้นอยู่กับข้อความที่รับเข้า

1.4 การอธิบายละเอียดของพารามิเตอร์ของคำขอ

ภายในตัวของร่างคำขอ มีพารามิเตอร์ที่สำคัญในการใช้สังเกต:

  • model: ระบุโมเดล AI ที่เราตั้งใจจะใช้ OpenAI มอบโมเดลหลายรุ่น ละแต่ละรุ่นมีความสามารถและผลกระทบที่แตกต่างกัน
  • messages: นี้เป็นอาเรย์ที่ประกอบไปด้วยข้อความหนึ่งหรือมากกว่า โดยแต่ละข้อความประกอบด้วย role ที่หากเชื่อที่บทบาทของข้อความ และ content แทนเนื้อหาของข้อความ
  • temperature: ควบคุมความแน่นอนของการตอบกลับ ค่า temperature ต่ำจะสร้างคำตอบที่มั่นใจมากขึ้น ในขณะที่ค่าที่สูงกว่าจะนำไปสู่ความสุ่มสะสมมากขึ้น

2. วิเคราะห์การตอบรับของ API

2.1 เข้าใจการตอบรับ

เมื่อคุณส่งคำขอ เซิร์ฟเวอร์จะส่งรหัสสถานะ HTTP และบางทีจะมีตัวข้อมูลการตอบรับอาจจะได้ข้อมูล JSON ที่มีผลลัพธ์ของคำขอ และตัวอย่างการตอบรับคือดังนี้:

{
    "id": "chatcmpl-abc123",
    "object": "chat.completion",
    "created": 1677858242,
    "model": "gpt-3.5-turbo-1106",
    "usage": {
        "prompt_tokens": 13,
        "completion_tokens": 7,
        "total_tokens": 20
    },
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "\n\nนี่คือการทดสอบ!"
            },
            "logprobs": null,
            "finish_reason": "stop",
            "index": 0
        }
    ]
}

ในการตอบรับนี้ เราสามารถเห็น ID ของการสมบูรณ์ ประสบการณ์การสร้าง โมเดลที่ใช้ การใช้โทเคน และเนื้อหาจริงแห่งการตอบโน้ตะ (โดยอยู่ในฟิลด์ choices)

2.2 ความสมบูรณ์และการจัดการข้อผิดพลาด

ฟิลด์ finish_reason บ่งชีให้ว่า API หยุดการผลิตเนื้อหาเพิ่มเติมอย่างไร ว่างทำให้เหตุผลประสบการณ์การสร้างข้อมูลขาดหาย

เบื้องต้น

2.3 ส่งคำขอ API โดยใช้ Python SDK

ด้านล่างนี้คือตัวอย่างในการใช้ OpenAI Python SDK ทำการเรียกร้อง API

ต้องติดตั้งไลบรารี openai โดยใช้คำสั่ง pip ก่อน

pip install --upgrade openai

จากนั้นคุณสามารถใช้โค้ด Python ต่อไปนี้เพื่อทำคำขอ API ที่คล้ายกับตัวอย่างข้างต้นได้ โปรดอย่าลืมแทนที่ YOUR_OPENAI_API_KEY ด้วย API key ของคุณ

from openai import OpenAI

client = OpenAI(
   api_key="YOUR_OPENAI_API_KEY",
)

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "คุณเป็นผู้ช่วยทางด้านการพัฒนาอย่างมืออาชีพ คล่องทุกปัญหาในการเขียนโปรแกรมต่าง ๆ"},
    {"role": "user", "content": "เขียนฟังก์ชันสำหรับ quicksort ใน Go หน่อย"}
  ]
)

print(completion.choices[0].message)