Skip to content

เอกสารอ้างอิง API

OpenTyphoon.ai API ได้รับการออกแบบให้เข้ากันได้กับ API ของ OpenAI ทำให้ง่ายต่อการผสานรวมหากคุณคุ้นเคยกับ OpenAI อยู่แล้ว เอกสารอ้างอิงนี้ครอบคลุมถึง endpoints ที่มีทั้งหมด, พารามิเตอร์ที่จำเป็นและไม่จำเป็น และตัวอย่างรูปแบบการตอบกลับ

การยืนยันตัวตน

การร้องขอ API ทั้งหมดต้องมีการยืนยันตัวตนโดยใช้ API key ของคุณ โดยรวม API key ของคุณไว้ในส่วนหัว Authorization:

Authorization: Bearer <YOUR_API_KEY>

URL พื้นฐาน

การร้องขอ API ทั้งหมดควรทำไปยัง:

https://api.opentyphoon.ai/v1

Endpoints

Chat Completions

สร้างการตอบกลับสำหรับการสนทนา

Endpoint: POST /v1/chat/completions

พารามิเตอร์ในส่วนเนื้อหาของคำขอ

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
modelstringใช่ID ของโมเดลที่จะใช้ (เช่น “typhoon-v2-70b-instruct”)
messagesarrayใช่อาร์เรย์ของออบเจ็กต์ข้อความที่แสดงถึงประวัติการสนทนา
max_tokensintegerไม่จำนวนโทเค็นสูงสุดที่จะสร้าง ค่าเริ่มต้นคือ 150 สูงสุดคือ 8192 โทเค็นที่แบ่งปันระหว่างคำถามและคำตอบ
temperaturefloatไม่อุณหภูมิการสุ่มตัวอย่างระหว่าง 0 และ 2 ค่าที่สูงกว่าเช่น 0.8 จะทำให้เอาต์พุตมีความสุ่มมากขึ้น ในขณะที่ค่าที่ต่ำกว่าเช่น 0.2 จะทำให้มีความเน้นและแน่นอนมากขึ้น ค่าเริ่มต้นคือ 0.7
top_pfloatไม่ทางเลือกในการสุ่มตัวอย่างด้วยอุณหภูมิ เรียกว่า nucleus sampling เราแนะนำให้ปรับแต่งค่านี้หรืออุณหภูมิ แต่ไม่ควรปรับทั้งสองค่า ค่าเริ่มต้นคือ 1
nintegerไม่จำนวนตัวเลือกการตอบกลับของการสนทนาที่จะสร้างสำหรับแต่ละข้อความที่ป้อนเข้ามา ค่าเริ่มต้นคือ 1
streambooleanไม่หากตั้งค่าเป็น true ข้อความบางส่วนจะถูกส่งเป็นเหตุการณ์ที่เซิร์ฟเวอร์ส่งเฉพาะข้อมูล ค่าเริ่มต้นคือ false
stopstring หรือ arrayไม่ลำดับสูงสุด 4 ลำดับที่ API จะหยุดสร้างโทเค็นเพิ่มเติม
presence_penaltyfloatไม่ตัวเลขระหว่าง -2.0 และ 2.0 ค่าบวกจะลงโทษโทเค็นใหม่ตามที่ปรากฏในข้อความจนถึงตอนนี้ ค่าเริ่มต้นคือ 0
frequency_penaltyfloatไม่ตัวเลขระหว่าง -2.0 และ 2.0 ค่าบวกจะลงโทษโทเค็นใหม่ตามความถี่ที่มีอยู่ในข้อความจนถึงตอนนี้ ค่าเริ่มต้นคือ 0
repetition_penaltyfloatไม่ตัวเลขระหว่าง 1.0 และ 2.0 ลงโทษโทเค็นที่ซ้ำกัน ค่าเริ่มต้นคือ 1.0 เราแนะนำ 1.05 สำหรับผลลัพธ์ที่ดี
userstringไม่ตัวระบุเฉพาะที่แสดงถึงผู้ใช้ปลายทางของคุณ ซึ่งสามารถช่วยในการตรวจสอบและตรวจจับการใช้งานที่ไม่เหมาะสม

รูปแบบอาร์เรย์ Messages

แต่ละข้อความในอาร์เรย์ messages ควรมี role และ content:

{
"role": "system" | "user" | "assistant",
"content": "เนื้อหาข้อความ"
}
  • system: กำหนดพฤติกรรมของผู้ช่วย
  • user: ข้อความของผู้ใช้
  • assistant: ข้อความจากผู้ช่วย

ตัวอย่างคำขอ

หน้าต่างเทอร์มินัล
curl --location 'https://api.opentyphoon.ai/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <YOUR_API_KEY>' \
--data '{
"model": "typhoon-v2-70b-instruct",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant that translates English to Thai."
},
{
"role": "user",
"content": "Translate the following: Hello, how are you?"
}
],
"temperature": 0.7,
"max_tokens": 256
}'

รูปแบบการตอบกลับ

{
"id": "cmpl-abc123",
"object": "chat.completion",
"created": 1677858242,
"model": "typhoon-v2-70b-instruct",
"usage": {
"prompt_tokens": 25,
"completion_tokens": 12,
"total_tokens": 37
},
"choices": [
{
"message": {
"role": "assistant",
"content": "สวัสดี คุณสบายดีไหม?"
},
"finish_reason": "stop",
"index": 0
}
]
}

การตอบกลับแบบสตรีมมิ่ง

เมื่อตั้งค่า stream เป็น true API จะส่งการตอบกลับบางส่วนในขณะที่กำลังสร้าง โดยแต่ละชิ้นส่วนจะมีเนื้อหาที่สร้างขึ้นใหม่:

data: {"id":"cmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"typhoon-v2-70b-instruct","choices":[{"index":0,"delta":{"role":"assistant","content":"สวัสดี"},"finish_reason":null}]}
data: {"id":"cmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"typhoon-v2-70b-instruct","choices":[{"index":0,"delta":{"content":" คุณ"},"finish_reason":null}]}
data: {"id":"cmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"typhoon-v2-70b-instruct","choices":[{"index":0,"delta":{"content":"สบายดี"},"finish_reason":null}]}
data: {"id":"cmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"typhoon-v2-70b-instruct","choices":[{"index":0,"delta":{"content":"ไหม?"},"finish_reason":null}]}
data: {"id":"cmpl-123","object":"chat.completion.chunk","created":1694268190,"model":"typhoon-v2-70b-instruct","choices":[{"index":0,"delta":{},"finish_reason":"stop"}]}
data: [DONE]
from openai import OpenAI
client = OpenAI(
api_key="<YOUR_API_KEY>",
base_url="https://api.opentyphoon.ai/v1"
)
stream = client.chat.completions.create(
model="typhoon-v2-70b-instruct",
messages=[
{"role": "user", "content": "เล่าเรื่องตำนานไทยสั้นๆ"}
],
stream=True
)
# ประมวลผลการตอบกลับแบบสตรีมมิ่ง
for chunk in stream:
if chunk.choices[0].delta.content is not None:
print(chunk.choices[0].delta.content, end="", flush=True)
print() # เพิ่มการขึ้นบรรทัดใหม่ที่ตอนจบ

การจัดการข้อผิดพลาด

API ส่งคืนรหัสสถานะ HTTP มาตรฐานเพื่อแสดงความสำเร็จหรือความล้มเหลวของคำขอ

รหัสสถานะคำอธิบาย
200OK - คำขอสำเร็จ
400Bad Request - คำขอไม่ถูกต้องหรือไม่ถูกรูปแบบ
401Unauthorized - API key ไม่ถูกต้อง
403Forbidden - API key ไม่มีสิทธิ์ในการดำเนินการตามคำขอ
404Not Found - ไม่พบทรัพยากรที่ร้องขอ
429Too Many Requests - เกินขีดจำกัดอัตราการใช้งาน
500Internal Server Error - เกิดข้อผิดพลาดบนเซิร์ฟเวอร์

รูปแบบการตอบกลับข้อผิดพลาด

{
"error": {
"message": "คำอธิบายของข้อผิดพลาด",
"type": "invalid_request_error",
"param": null,
"code": null
}
}