models

Cloudflare: Clef Omni

Markdown · JSON

Cloudflare: Clef Omni

Cloudflare Clef Omni เป็นโมเดลตัดสินใจแบบมัลติโมดัลที่ใช้โครงข่ายหลัก MoE ซึ่งมีพารามิเตอร์รวม 30B และใช้งานจริง 3B โมเดลประเมินข้อความ สถานะที่มีโครงสร้าง และสื่อที่ให้มาเทียบกับคำถามที่ระบุชนิดไว้ แล้วคืนค่าความน่าจะเป็นและการตัดสินใจภายในขอบเขตที่กำหนด ผลลัพธ์เป็นตัวเลือก ความน่าจะเป็นที่เงื่อนไขเป็นจริง หรือคะแนนแบบมีลำดับ แทนการสร้างข้อความร้อยแก้ว

เกี่ยวกับโมเดล

คำอธิบายนี้ครอบคลุมความสามารถของโมเดล อินพุต เอาต์พุต และตัวเลือกที่ใช้ได้ใน Ailoot แสดงด้านล่างตามเมธอดที่เลือก

Cloudflare Clef Omni เป็นโมเดลแบบผสมผู้เชี่ยวชาญหลายชุดที่รองรับมัลติโมดัลในตระกูลโมเดลตัดสินใจ Clef โมเดลผ่านการฝึกเพิ่มเติมจากโครงข่ายหลักสำหรับทำความเข้าใจ Qwen3-Omni-30B-A3B-Instruct โดยมีพารามิเตอร์รวม 30B และใช้งานจริง 3B Cloudflare เพิ่มส่วนหัวสคีมาร่วมที่ส่งหลักฐานไปยังคำถามที่ขอ และให้คะแนนตัวเลือกที่อนุญาตของคำถามเหล่านั้นร่วมกัน ผลลัพธ์จึงเป็นการตัดสินใจที่ระบุชนิดพร้อมความน่าจะเป็น ไม่ใช่คำอธิบายที่สร้างขึ้น บทถอดเสียง หรือเอาต์พุตเสียงพูด

เตรียมข้อมูลหลักสองส่วน ได้แก่ สถานะที่อธิบายสถานการณ์ และแมปของคำถามที่มีชื่อกำกับ สถานะอาจเป็นข้อความหรือ JSON ที่มีโครงสร้าง และอินพุตที่โมเดลรองรับโดยตรงยังรวมถึงภาพ เสียง และวิดีโอด้วย แต่ละคำถามต้องบอกว่าจะตัดสินใจเรื่องใดและอนุญาตคำตอบใดบ้าง ใช้ตัวระบุให้คงที่เพื่อให้แอปพลิเคชันเชื่อมโยงคำตอบแต่ละข้อที่ส่งกลับมากับคำถามต้นฉบับได้ คำอธิบายตัวเลือกที่ชัดเจนทำให้หมวดหมู่มีความหมาย ขณะที่ป้ายชื่อสั้น ๆ ที่กำกวมอาจซ่อนความแตกต่างที่เวิร์กโฟลว์ต้องการแยกจริง ๆ

รูปแบบระเบียนมีคำถามสามชนิด คำถามแบบ noul ถามถึงเงื่อนไขจริง/เท็จและคืนค่าความน่าจะเป็นที่เงื่อนไขนั้นเป็นจริง คำถามแบบ choice กำหนดตัวเลือกที่มีชื่อ และคืนค่าตัวเลือกที่เลือก ความน่าจะเป็นของแต่ละตัวเลือก และค่าความมั่นใจแยกต่างหาก คำถามแบบ score กำหนดเกณฑ์ที่เรียงลำดับโดยเริ่มดัชนีจากศูนย์ และคืนค่าคะแนนถ่วงน้ำหนักด้วยความน่าจะเป็น คำอธิบายระดับ และความน่าจะเป็น คะแนนอาจเป็นทศนิยมได้เพราะสะท้อนการแจกแจงระหว่างระดับต่าง ๆ ดังนั้นการตัดสินใจจึงให้ข้อมูลมากกว่าป้ายชื่อเดียว แต่ยังอยู่ภายในขอบเขตของสคีมาที่ให้มา

สำหรับการตรวจดูภาพ ให้ภาพที่ชัดเจนพร้อมเงื่อนไขที่ต้องการประเมิน ตัวอย่างเช่น ระเบียนการติดตั้งที่ถามว่ามองเห็นป้ายระบุข้อมูลหรือไม่ เข้าข่ายหมวดหมู่สภาพใดจากที่กำหนดไว้ และหลักฐานเพียงพอสำหรับการตรวจทานหรือไม่ แยกข้อสังเกตแต่ละเรื่องออกจากกัน การมองเห็นป้ายเป็นคนละคำถามกับการที่งานติดตั้งดูเหมือนเสร็จสมบูรณ์ ผลลัพธ์ช่วยให้แอปพลิเคชันส่งระเบียนไปยังขั้นตอนที่เหมาะสมหรือทำเครื่องหมายเงื่อนไขที่ต้องตรวจทานได้ แต่ตัวโมเดลไม่ได้ดำเนินการตรวจ เปลี่ยนระเบียน หรือสร้างรายงานเป็นลายลักษณ์อักษรด้วยตัวเอง

สำหรับเสียงและวิดีโอ ให้คำถามมุ่งที่หลักฐานซึ่งคลิปที่ให้มารองรับได้ การตรวจทานอุปกรณ์ในทางปฏิบัติอาจใช้ภาพถ่าย ไฟล์บันทึกเสียง และวิดีโอสั้น แล้วถามว่ามีเสียงที่ระบุหรือไม่ หรือมองเห็นชิ้นส่วนเคลื่อนไหวหรือไม่ ผู้ผลิตอธิบายว่าจะประมวลผลแทร็กเสียงของวิดีโอควบคู่กับเฟรมเมื่อวิดีโอทุกไฟล์ในระเบียนมีเสียง รักษาความสัมพันธ์ระหว่างสื่อกับสถานะที่เขียนไว้ และหลีกเลี่ยงการขอให้โมเดลจำแนกเหตุการณ์ที่อยู่นอกช่วงเวลาของสื่อแนบ

โปรไฟล์บริการโฮสต์ของผู้ผลิตระบุบริบท 64,000 โทเคน และคำถามตั้งแต่ 1 ถึง 64 ข้อ รับภาพได้สูงสุดสี่ภาพ คลิปเสียงสี่คลิป และวิดีโอสองไฟล์ โดยคลิปเสียงยาวได้ไม่เกิน 300 วินาทีต่อคลิป และวิดีโอยาวได้ไม่เกิน 60 วินาทีต่อไฟล์ นี่คือขีดจำกัดของอินเทอร์เฟซผู้ผลิตที่มีเอกสารระบุไว้ สื่อและคำถามใช้พื้นที่บริบท สื่อที่มากเกินไปอาจทำให้คำขอล้มเหลว ส่วนสถานะข้อความที่ยาวอาจถูกตัดให้พอดี รวมหลักฐานที่ชี้ขาดไว้ในระเบียนที่ตรงประเด็น และเตรียมคำถามก่อนใช้พื้นที่บริบทไปกับประวัติที่ไม่เกี่ยวข้อง

อินเทอร์เฟซบริการโฮสต์ของผู้ผลิตรับสื่อที่ฝังมาแทนลิงก์ระยะไกล ภาพ PNG, JPEG หรือ WebP มีขนาดไม่เกิน 4 MiB และ 16 เมกะพิกเซลต่อภาพ โดยภาพทั้งหมดหลังถอดรหัสมีขนาดรวมได้ไม่เกิน 8 MiB คลิปเสียงแต่ละคลิปมีขีดจำกัด 8 MiB และ 300 วินาที วิดีโอแต่ละไฟล์มีขีดจำกัด 16 MiB และ 60 วินาที เสียงและวิดีโอหลังถอดรหัสรวมกันมีขนาดสูงสุด 16 MiB และวิดีโอถูกสุ่มตัวอย่างที่สองเฟรมต่อวินาที ขีดจำกัดเหล่านี้เป็นของอินเทอร์เฟซผู้ผลิตดังกล่าว ส่วนตัวเข้ารหัสแบบเปิดน้ำหนักโมเดลรับรูปแบบข้อมูลภายในเครื่องเพิ่มเติมได้ ความสามารถด้านเสียงของโครงข่ายหลักสำหรับทำความเข้าใจไม่ได้หมายความว่าโมเดลตัดสินใจนี้สร้างเสียงได้ เพราะไม่ได้ใช้ส่วนประกอบสร้างเสียงพูดในการให้คะแนนการตัดสินใจ

สำหรับการส่งต่องานสนับสนุนหรือเวิร์กโฟลว์ ให้กำหนดหมวดหมู่และเกณฑ์แบบมีลำดับจากกฎการปฏิบัติงานจริง ระเบียนทิกเก็ตอาจถามว่าทีมใดควรรับผิดชอบ ผลกระทบเร่งด่วนหรือไม่ และระดับความรุนแรงใดตรงกับหลักฐานมากที่สุด เอาต์พุตที่สังเกตได้คือชุดคำตอบที่ระบุชนิดภายใต้ชื่อคำถามเหล่านั้น ตรวจการแจกแจงความน่าจะเป็นทั้งหมดเมื่อหมวดหมู่มีค่าใกล้กัน และกำหนดให้ชัดว่าแอปพลิเคชันจะจัดการกรณีไม่แน่นอนอย่างไร ความน่าจะเป็นสูงเป็นการประเมินหลักฐานที่ให้มาโดยโมเดล ไม่ใช่หลักฐานยืนยันว่าเงื่อนไขนั้นได้รับการตรวจสอบอย่างอิสระแล้ว

เมื่อพิจารณาผลลัพธ์ ให้เก็บสถานะ สคีมาคำถาม และคำตอบที่ส่งกลับไว้ด้วยกัน ตรวจว่าตัวเลือกครอบคลุมสถานการณ์จริงหรือไม่ คำอธิบายทับซ้อนกันหรือไม่ และมีหลักฐานสำคัญที่ตกหล่นหรือถูกตัดหรือไม่ หากขั้นตอนถัดไปต้องการคำอธิบายเป็นลายลักษณ์อักษร สามารถใช้การตัดสินใจและข้อมูลต้นฉบับเป็นอินพุตของขั้นตอนเขียนแยกต่างหากได้ บทบาทที่เป็นประโยชน์ของ Clef Omni คือการให้คะแนนทางเลือกที่กำหนดไว้จากหลักฐานมัลติโมดัล เพื่อให้เลือกการดำเนินการถัดไปได้โดยมีอินพุตและเอาต์พุตที่ชัดเจนและตรวจดูได้

Ailoot Ultra · System One POST /v1/systemone cloudflare/clef-omni

cloudflare/clef-omni

Cloudflare /cloudflare/clef-omni

เริ่มต้น

Cloudflare Clef Omni เป็นโมเดลตัดสินใจแบบมัลติโมดัลที่ใช้โครงข่ายหลัก MoE ซึ่งมีพารามิเตอร์รวม 30B และใช้งานจริง 3B โมเดลประเมินข้อความ สถานะที่มีโครงสร้าง และสื่อที่ให้มาเทียบกับคำถามที่ระบุชนิดไว้ แล้วคืนค่าความน่าจะเป็นและการตัดสินใจภายในขอบเขตที่กำหนด ผลลัพธ์เป็นตัวเลือก ความน่าจะเป็นที่เงื่อนไขเป็นจริง หรือคะแนนแบบมีลำดับ แทนการสร้างข้อความร้อยแก้ว

อินพุตที่รองรับ
ข้อความ · รูปภาพ
ผลลัพธ์
decisions

ใช้งานได้ใน Ailoot · อินพุตและเมธอด

Ailoot Ultra · System One POST /v1/systemone
ขาเข้า
text, image
ขาออก
decisions
รูปแบบเอาต์พุต
json
ฟิลด์ประเภทข้อกำหนดค่าและข้อจำกัดค่าเริ่มต้น
ฟิลด์modelประเภทstringข้อกำหนดจำเป็นค่าและข้อจำกัด
cloudflare/clef-omni
ค่าเริ่มต้น—
ฟิลด์providerประเภทschemaข้อกำหนดไม่บังคับค่าและข้อจำกัดค่าเริ่มต้น—
ฟิลด์questionsประเภทobjectข้อกำหนดจำเป็นค่าและข้อจำกัดค่าเริ่มต้น—
ฟิลด์session_idประเภทstringข้อกำหนดไม่บังคับค่าและข้อจำกัดค่าเริ่มต้น—
ฟิลด์stateประเภทschemaข้อกำหนดจำเป็นค่าและข้อจำกัดค่าเริ่มต้น—
ฟิลด์traceประเภทschemaข้อกำหนดไม่บังคับค่าและข้อจำกัดค่าเริ่มต้น—
ฟิลด์userประเภทstringข้อกำหนดไม่บังคับค่าและข้อจำกัดค่าเริ่มต้น—
ฟิลด์questions.<id>.typeประเภทstringข้อกำหนดจำเป็นค่าและข้อจำกัด
noul, choice, score
ค่าเริ่มต้น—
ฟิลด์questions.<id>.instructionsประเภทstring|object|arrayข้อกำหนดจำเป็นค่าและข้อจำกัดค่าเริ่มต้น—
ฟิลด์questions.<id>.criteriaประเภทobject|arrayข้อกำหนดไม่บังคับค่าและข้อจำกัด
เงื่อนไข: choice/score: จำเป็น; noul: ไม่จำเป็น เกณฑ์ choice เป็นออบเจ็กต์ ส่วน score เป็นอาร์เรย์ที่มี minItems1
ค่าเริ่มต้น—
ฟิลด์questions.<id>.criteria.trueประเภทstring|object|arrayข้อกำหนดจำเป็นค่าและข้อจำกัด
ใช้เมื่อ: มีการส่งออบเจ็กต์เกณฑ์ noul มาแล้ว
ค่าเริ่มต้น—
ฟิลด์questions.<id>.criteria.falseประเภทstring|object|arrayข้อกำหนดจำเป็นค่าและข้อจำกัด
ใช้เมื่อ: มีการส่งออบเจ็กต์เกณฑ์ noul มาแล้ว
ค่าเริ่มต้น—
ชุดผสมของสื่ออินพุต

noul · จำเป็น: state, questions.<id>.type=noul, questions.<id>.instructions

choice · จำเป็น: state, questions.<id>.type=choice, questions.<id>.instructions, criteria object

score · จำเป็น: state, questions.<id>.type=score, questions.<id>.instructions, criteria array with minItems1

พารามิเตอร์และวงจรการทำงานของเมธอด
พารามิเตอร์ข้อกำหนด
พารามิเตอร์content_typeข้อกำหนดapplication/json
พารามิเตอร์requiredข้อกำหนดmodel, state, questions
พารามิเตอร์material_typesข้อกำหนดtext, image
พารามิเตอร์optional_controlsข้อกำหนดprovider, session_id, trace, user
พารามิเตอร์multimodal_input_bindingข้อกำหนดใช้เฉพาะรูปแบบสถานะ/เอกสารที่ตรงตามที่ประกาศไว้ ความสามารถด้านภาพของผู้ผลิตเพียงอย่างเดียวไม่ได้ยืนยันรูปแบบส่งภาพที่ยอมรับสำหรับโมเดลนั้น

วงจรการทำงาน: synchronous

ส่ง ID โมเดลที่ตรงตามที่กำหนดและเก็บการตอบกลับรูปแบบดั้งเดิมทั้งหมด

ราคา

ข้อมูลอัตราราคาไม่ได้เพิ่มตัวเลือกคำขอ พารามิเตอร์ที่รองรับระบุไว้สำหรับเมธอดที่เลือก

โหมดรวดเร็ว
ไม่ได้ระบุ เมื่อเลือกโหมดรวดเร็ว
โหมดยืดหยุ่น
ไม่ได้ระบุ เมื่อเลือกโหมด flex
ระดับการใช้เหตุผลสูงสุด
ไม่ได้ระบุ เมื่อใช้การปรับตามค่าเริ่มต้น (default) สำหรับระดับการใช้เหตุผลสูงสุด

อัตราค่าบริการ Ailoot

ราคาตามการตั้งค่า

เทียบค่าบริการแต่ละรายการกับเงื่อนไขที่แสดง เลือกใช้อัตราเดียวสำหรับแต่ละชุดการตั้งค่าที่เป็นตัวเลือกทดแทนกัน

การตั้งค่าตารางอัตราค่าบริการโทเค็นบริบท มากกว่าโทเค็นบริบท ไม่เกินและรวมค่าค่าบริการ
การตั้งค่าอัตราราคาพื้นฐานของโทเคนตารางอัตราค่าบริการอัตราพื้นฐานโทเค็นบริบท มากกว่า—โทเค็นบริบท ไม่เกินและรวมค่าไม่มีขีดจำกัดสูงสุดค่าบริการ
ขาเข้า · โทเค็นอินพุต $0.0003 / 1K โทเค็น
ขาออก · โทเค็นเอาต์พุต $0 / 1K โทเค็น
ขาเข้า · การอ่านแคช — / 1K โทเค็น
ขาเข้า · การเขียนแคช — / 1K โทเค็น
ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น
การตั้งค่าระดับความยาวคำขอ 1ตารางอัตราค่าบริการ—โทเค็นบริบท มากกว่า0โทเค็นบริบท ไม่เกินและรวมค่าไม่มีขีดจำกัดสูงสุดค่าบริการ
ขาเข้า · โทเค็นอินพุต $0.0003 / 1K โทเค็น
ขาออก · โทเค็นเอาต์พุต $0 / 1K โทเค็น
ขาเข้า · การอ่านแคช — / 1K โทเค็น
ขาเข้า · การเขียนแคช — / 1K โทเค็น
ขาเข้า · การเขียนแคช, 1 ชั่วโมง — / 1K โทเค็น

Ailoot กันยอดเงินประมาณการไว้ก่อนส่งคำขอ หลังได้ผลลัพธ์ จะคิดค่าบริการสุดท้ายตามการใช้งานที่วัดได้ การคิดค่าบริการแบบสตรีมใช้บันทึกการใช้งานสุดท้าย วิธีกันยอดเงินและคิดค่าบริการสุดท้าย →

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

Ailoot Ultra · System One

โครงสร้างคำขอทางการตามต้นฉบับ; ตัวอย่างประกอบเอกสารใช้ข้อมูลสำหรับคำขอจริงของคุณและเก็บผลลัพธ์ไว้ให้ครบถ้วน
{
  "model": "cloudflare/clef-omni",
  "questions": {
    "is_bug": {
      "criteria": {
        "false": "The customer is asking a question or requesting a feature.",
        "true": "The customer describes broken or unexpected product behavior."
      },
      "instructions": "Is the customer reporting a software defect?",
      "type": "noul"
    },
    "team": {
      "criteria": {
        "account": "Login, permissions, or profile issues.",
        "frontend": "Rendering, layout, or browser compatibility issues.",
        "payments": "Checkout, billing, or payment processing issues."
      },
      "instructions": "Which team should own this ticket?",
      "type": "choice"
    },
    "urgency": {
      "criteria": [
        "Can wait for the next release",
        "Should be fixed this week",
        "Blocking revenue right now"
      ],
      "instructions": "How urgent is this ticket?",
      "type": "score"
    }
  },
  "state": {
    "customer_tier": "enterprise",
    "ticket": "My checkout page shows a blank screen after I click Pay. I have tried two browsers."
  }
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_REQUEST_FILE:?Set your actual JSON request file}"
export AILOOT_REQUEST_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads(Path(os.environ['AILOOT_REQUEST_FILE']).read_text(encoding='utf-8'))
if not isinstance(p,dict): raise SystemExit('Request must be a JSON object')
p['model']='cloudflare/clef-omni'
Path('request.json').write_text(json.dumps(p,ensure_ascii=False),encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/systemone \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path('result.json').read_text()),ensure_ascii=False,indent=2))
PY_RESULT

รับและบันทึกผลลัพธ์

Ailoot Ultra · System One

json

เก็บผลลัพธ์ที่เสร็จสมบูรณ์ทั้งหมด

เก็บทุกการตอบกลับ ไฟล์ และส่วนเนื้อหาที่ส่งกลับมาอย่างครบถ้วน

เก็บคำตอบของทุก ID คำถามที่ให้มา พร้อมชนิดที่ตรงกัน ค่า noul/choice/score ความเชื่อมั่น ความน่าจะเป็น และคำอธิบายสัญลักษณ์ JSON ต้นฉบับทั้งหมดจะถูกจัดเก็บและส่งกลับหลังชำระบัญชีแล้วเท่านั้น

เมื่อต้องตรวจสอบการตอบกลับต้นฉบับ

เก็บการดำเนินการเดิมและการตอบกลับทั้งหมด/บางส่วน อย่าส่ง POST ซ้ำ

ฟิลด์การตอบกลับ
ฟิลด์ประเภท
ฟิลด์modelประเภทstring
ฟิลด์idประเภทstring
ฟิลด์providerประเภทstring
ฟิลด์answers.<id>.typeประเภทstring
ฟิลด์answers.<id>.noulประเภทnumber
ฟิลด์answers.<id>.choiceประเภทstring
ฟิลด์answers.<id>.scoreประเภทnumber
ฟิลด์answers.<id>.confidenceประเภทnumber
ฟิลด์answers.<id>.probabilitiesประเภทobject
ฟิลด์answers.<id>.legendประเภทobject
ฟิลด์usage.input_tokensประเภทinteger
ฟิลด์usage.output_tokensประเภทinteger
ฟิลด์usage.costประเภทnumber
ข้อผิดพลาดและขั้นตอนถัดไป
การตอบกลับเงื่อนไขขั้นตอนถัดไป
การตอบกลับ400 · invalid_request_errorเงื่อนไขฟิลด์ที่จำเป็น รูปแบบข้อมูล หรือค่าไม่ถูกต้องขั้นตอนถัดไปแก้ไขฟิลด์คำขอที่ระบุ

ชื่ออื่น

ชื่ออื่นของโมเดล

Ailoot Ultra cloudflare/clef-omni

ชื่อพาธเมธอดอื่น

ใช้พาธเมธอดที่แสดงด้านบน

ID ที่เกี่ยวข้องสำหรับเรียกใช้โมเดล

cloudflare/clef-omni

FAQ · Cloudflare: Clef Omni
มีอินพุตและผลลัพธ์ใดบ้าง?

POST /v1/systemone · cloudflare/clef-omni: text, image → decisions

คำขอใช้ฟิลด์ใดบ้าง?

POST /v1/systemone · cloudflare/clef-omni: model, provider, questions, session_id, state, trace, user

รายละเอียดเพิ่มเติม

เชื่อม Ailoot กับ Claude Code, OpenCode, Hermes หรือแอปของคุณ

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท

บริษัทและพอร์ตโฟลิโอโครงการของบริษัท: ลูกค้าหลายล้านราย; ยอดขายระดับหลายพันล้านต่อเดือน.

ซื้อโทเคนพร้อมส่วนลด

ส่วนลดสมาชิกสำหรับงานประจำ โค้ดโปรโมชั่นลดซื้อโทเคนสูงสุด 50%

สมาชิก
เลือกแพ็กเกจมีส่วนลดสำหรับคำขอประจำ
โค้ดลดสูงสุด 50%
ใส่โค้ดขณะซื้อ ราคาคำนวณใหม่ตามโปรโมชั่นที่ใช้
รายจ่ายในประวัติ
เก็บโมเดล โทเคน และยอดสำหรับทุกคำขอ

เลือกสมาชิก · ดูราคาโมเดล

เชื่อม API กับผลิตภัณฑ์ ที่คุณขาย

SaaS แอป และบอต ตามข้อเสนอและสัญญาอนุญาต Ailoot หากขายต่อให้ขอใบอนุญาตรีเซลเลอร์

แอปเชิงพาณิชย์
ใส่การสร้างข้อความ ภาพ วิดีโอ และเสียงในฟีเจอร์เสียเงินของบริการคุณ
ใบอนุญาตรีเซลเลอร์
ส่งคำอธิบายโครงการและรูปแบบการเข้าถึง ขอเงื่อนไขใช้และขายต่อเป็นลายลักษณ์อักษร
เอกสารบนเว็บไซต์
อ่านข้อเสนอ สัญญาอนุญาต และนโยบายประมวลผลข้อมูลก่อนเชื่อมได้

ขอใบอนุญาตขายต่อ · ข้อเสนอและสัญญาอนุญาต