แปลงภาพเป็นเวกเตอร์ด้วย API ทีละชุดและทำต่อได้
แปลงภาพหลายไฟล์ผ่าน API ด้วยคิวที่บันทึกลงดิสก์ เก็บ ID การแปลง จัดการไฟล์ที่ล้มเหลว และทำต่อโดยไม่ส่งงานที่เสร็จแล้วซ้ำ
ในหน้านี้
หากต้องการแปลงภาพหลายไฟล์ด้วย API ให้ใส่ต้นฉบับแต่ละไฟล์ลงในคิวและบันทึกความคืบหน้าก่อนไปไฟล์ถัดไป ใน PerfectVector API v1 โปรแกรมประมวลผลของคุณดูแลคิวเอง API รับหนึ่งภาพต่อคำขอ และตามค่าเริ่มต้นให้แปลงจริงพร้อมกันได้หนึ่งรายการต่อบัญชี ข้อจำกัด PerfectVector API
สร้างรายการคิวให้ภาพแต่ละไฟล์
เริ่มจากสำเนาต้นฉบับที่ไม่เปลี่ยนแปลงและโฟลเดอร์ผลลัพธ์แยก ตัวอย่างใช้โปรแกรมประมวลผลหนึ่งตัว ฐานข้อมูล SQLite ในเครื่อง และโฟลเดอร์ PNG, JPEG หรือ WebP แบบเฟรมเดียว อ่านข้อจำกัดไฟล์ของ APIก่อนเพิ่มไฟล์ลงคิว ใช้พาธผลลัพธ์ที่ไม่ซ้ำเพื่อไม่ให้ต้นฉบับสองไฟล์ชื่อ logo.png เขียนทับกัน
บันทึกฟิลด์ต่อไปนี้พร้อมกันก่อนอัปโหลดครั้งแรก
| ฟิลด์ | สิ่งที่ต้องเก็บ |
|---|---|
| ต้นฉบับ | พาธคงที่หรือเวอร์ชันออบเจ็กต์ พร้อมค่าแฮชของไบต์ต้นฉบับ |
| คีย์คำขอ | คีย์ป้องกันการส่งซ้ำที่ระบุว่าคำขอไหนเป็นการส่งซ้ำของงานเดิม บันทึกเวลาที่ลอง POST ครั้งแรกด้วย |
| ID การแปลง | ID รูปแบบ vec_… ของ API บันทึกทันทีที่ได้รับ |
| ผลลัพธ์ | พาธปลายทางในเครื่องที่ไม่ซ้ำและสถานะคิวล่าสุดที่ยืนยันแล้ว |
| รายละเอียดความล้มเหลว | รหัสปัญหาจาก API, ID คำขอ หรือข้อผิดพลาดของการแปลง หากมี |
คอมมิตรายการคิวก่อนส่ง POST หาก API รับไฟล์แล้วแต่การเชื่อมต่อหลุดก่อนได้ ID คุณยังมีคีย์เดิมให้ใช้ PerfectVector รู้จักคีย์นั้นเป็นเวลา 24 ชั่วโมงนับจากคำขอแรกในบัญชีและโหมดเดิม เมื่อส่งซ้ำ ให้ใช้ข้อมูลไบต์และตัวเลือกเดิมทุกอย่าง การป้องกันการส่งซ้ำของ PerfectVector

ส่ง ตรวจสถานะ และบันทึกทีละรายการ
ส่ง POST แบบ multipart ไปยัง /v1/vectorizations โดยใส่ภาพในฟิลด์ image และคีย์ของแถวในเฮดเดอร์ Idempotency-Key ใช้ Prefer: respond-async เพื่อให้คำขอส่งงานจบเร็ว บันทึก ID จากผลตอบกลับที่สำเร็จก่อนเริ่มตรวจสถานะ 202 หมายถึงการแปลงยังไม่เสร็จ ส่วน 201 อาจเป็นรายการที่แปลงสำเร็จหรือล้มเหลว จึงต้องอ่านสถานะใน JSON การรอและงานอะซิงโครนัสของ PerfectVector
ตารางนี้แสดงลำดับการตัดสินใจของโปรแกรมประมวลผล สถานะคิวอย่าง saved เป็นชื่อที่คุณกำหนดเอง ส่วน API คืนสถานะอย่าง processing และ succeeded
| รายการคิวบนดิสก์ | ขั้นตอนถัดไป |
|---|---|
| รายการใหม่ที่บันทึกคีย์แล้ว | อัปโหลดไบต์เดิมและบันทึก ID การแปลงที่ได้รับ |
| ไม่ทราบผลการส่งและยังไม่มี ID | ส่งไฟล์เดิมด้วยคีย์ที่เก็บไว้ภายในช่วงที่ส่งซ้ำได้ หากเลยช่วงแล้ว ให้ทำเครื่องหมายรอตรวจสอบก่อนเริ่มรายการใหม่ที่อาจเสียเครดิต |
| บันทึก ID การแปลงแล้ว | ตรวจ ID เดิม เว้นช่วงประมาณสองวินาทีระหว่างการตรวจ และรอตามที่ระบบจำกัดอัตราคำขอระบุ |
| แปลงสำเร็จแต่ไม่มีไฟล์ | ดาวน์โหลดผล ตรวจ image/svg+xml เขียนลงไฟล์ชั่วคราวแล้วเปลี่ยนชื่อเป็นพาธปลายทาง จากนั้นทำเครื่องหมายว่าบันทึกแล้ว |
| บันทึกแล้ว | ข้าม POST หากไฟล์หาย ให้ลองดึงผลเดิมขณะที่ลิงก์ยังใช้ได้ |
| ถูกปฏิเสธหรือล้มเหลว | บันทึกปัญหา HTTP หรือข้อผิดพลาดสุดท้าย แก้ต้นฉบับที่ผิดก่อนส่งเป็นรายการใหม่ |
หาก POST ได้ 429 หรือ 503 ให้รอตาม Retry-After แล้วใช้ภาพ ตัวเลือก และคีย์เดิมภายในช่วง 24 ชั่วโมง หากได้ too_many_in_flight ให้รอรายการจริงที่กำลังทำอยู่ให้เสร็จด้วย เมื่อมี ID การแปลง ให้ตรวจ ID ก่อนส่งอีกครั้ง หากยืนยันแล้วว่าสถานะสุดท้ายเป็น failed พร้อม timeout หรือ provider_unavailable ต้องใช้คีย์ใหม่หากจะลองอีกครั้ง รอให้ผู้ให้บริการกลับมาในกรณีหลัง ส่วนการหมดเวลารอของไคลเอนต์ยังไม่บอกผลสุดท้าย ให้ใช้ ID เดิมหรือส่งซ้ำด้วยคีย์เดิมในช่วงที่กำหนด ข้อผิดพลาด PerfectVector API
หลังเริ่มใหม่ โปรแกรมตรวจสถานะหรือดาวน์โหลดซ้ำได้โดยไม่เริ่มการแปลงใหม่ ดาวน์โหลดและเก็บ SVG แต่ละไฟล์ที่สำเร็จก่อนไปแถวถัดไป ผลลัพธ์ API หมดอายุ 24 ชั่วโมงหลังการแปลงเสร็จ ผลลัพธ์และการดาวน์โหลด PerfectVector
ใช้รหัสเทียมนี้ปรับให้เข้ากับฐานข้อมูลและไคลเอนต์ HTTP ของคุณ การทดสอบด้านล่างสมมติว่าโปรแกรมบันทึกทุกคำขอ และหยุดชั่วคราวเพื่อทดสอบทันทีหลังคอมมิต ID การแปลงตัวที่สอง
for each queue row in a stable order:
if the row is rejected or its saved SVG is still on disk:
continue
if the row has no conversion ID:
verify source bytes match the stored digest
if an earlier POST is uncertain and the replay window expired:
flag the row for review and continue
POST with the stored key and original bytes and options
if the response is a permanent input rejection:
commit the error and continue
if the POST times out or the service requests a retry:
keep the same key, record the retry time and stop this run
commit the returned conversion ID
pause here when testing recovery after a commit
GET status by conversion ID, waiting between pending responses
if conversion failed:
commit its error and continue
download the existing result and check the SVG media type
write to a temporary file and rename it to the output path
commit the saved stateทดสอบเริ่มใหม่ด้วยไฟล์สามไฟล์
ใช้โลโก้ PNG ขนาดเล็กสองไฟล์และ PNG ที่เสียหายหนึ่งไฟล์ ใส่ไฟล์เสียไว้โดยตั้งใจเพื่อดูว่าคิวยังไปต่อหลังถูกปฏิเสธหรือไม่ เมื่อใช้คีย์ทดสอบ ไฟล์ที่ใช้ได้ทั้งสองควรได้ SVG ตัวอย่าง ส่วนไฟล์เสียควรไม่ผ่านการตรวจและไม่มีไฟล์ในโฟลเดอร์ผลลัพธ์ โหมดทดสอบคืน SVG ตัวอย่างเดียวกันสำหรับสองไฟล์ที่ใช้ได้ โหมดทดสอบ PerfectVector
- ให้ไฟล์แรกถึงสถานะ
savedหยุดโปรแกรมหลังเขียน ID ของไฟล์ที่ใช้ได้ไฟล์ที่สอง แต่ก่อนบันทึกผล - เริ่มโปรแกรมใหม่ ยืนยันว่าข้ามไฟล์แรกและดาวน์โหลดไฟล์ที่สองด้วย ID การแปลงเดิม
- ตรวจว่าไฟล์เสียปรากฏในรายงานความล้มเหลวพร้อมรหัสปัญหา และไม่มี SVG สำหรับไฟล์นั้น
- รันโปรแกรมอีกครั้ง ตรวจว่าไฟล์ทั้งสองยังอยู่และไม่มีการส่งรายการที่สำเร็จไปแล้วอีก
เราทดสอบการเริ่มใหม่กับ API ด้วยคีย์ทดสอบ บันทึก SVG ตัวอย่างได้สองไฟล์ บันทึกต้นฉบับเสียหนึ่งไฟล์ว่าถูกปฏิเสธ และกู้ผลไฟล์ที่สองด้วย ID เดิม รอบสุดท้ายไม่ส่งคำขอใด โหมดทดสอบเสร็จทันที ให้ใช้ผลจำลองเพื่อทดสอบกรณีที่งานยังไม่เสร็จ
คำถามที่พบบ่อย
ส่งทุกไฟล์ในคำขอ API เดียวได้ไหม
PerfectVector API v1 รับหนึ่งภาพต่อ POST ส่งงานเป็นหลายคำขอแยกกัน สำหรับงานจริง ให้ทำตามขีดจำกัดของบัญชีและรอให้รายการปัจจุบันเสร็จก่อนส่งรายการถัดไป ข้อจำกัด PerfectVector API
ถ้า SVG หมดอายุแล้วควรทำอย่างไร
หากเคยดาวน์โหลด ให้ใช้ SVG ที่เก็บไว้ มิฉะนั้นให้ตรวจสถานะการแปลงแล้วตัดสินใจว่าจะเริ่มรายการใหม่หรือไม่ การแปลงจริงรายการใหม่อาจใช้อีกหนึ่งเครดิตหากสำเร็จ ผลลัพธ์และการดาวน์โหลด PerfectVector
แหล่งอ้างอิง
- PerfectVector — ข้อจำกัด — การตรวจไฟล์และจำนวนงานพร้อมกันเริ่มต้นของบัญชี
- PerfectVector — การป้องกันการส่งซ้ำ — ขอบเขตคีย์ ช่วงที่ส่งซ้ำได้ และอินพุตที่ต้องตรงกัน
- PerfectVector — การรอและงานอะซิงโครนัส — การส่งแบบอะซิงโครนัสและตรวจสถานะ
- PerfectVector — ผลลัพธ์ — การดาวน์โหลด ความล้มเหลว และวันหมดอายุ
- PerfectVector — โหมดทดสอบ — การตรวจอัปโหลดและผลลัพธ์ที่คีย์ทดสอบใช้ยืนยันได้
- PerfectVector — ข้อผิดพลาด — การรอตาม Retry-After สถานะล้มเหลว และกรณีที่ต้องใช้คีย์ใหม่
รับคีย์ทดสอบจากหน้า PerfectVector API แล้วลองใช้ต้นฉบับของคุณสามไฟล์ ตรวจว่าทุกแถวที่สำเร็จมี SVG บนดิสก์ และเมื่อเริ่มใหม่ไม่มีการส่งแถวที่เสร็จแล้ว
เพิ่มเติมจากบล็อก
แปลงชุดภาพด้วย PNG2SVG: ตรวจ ZIP ที่ดาวน์โหลด
ติดตามการแปลง PNG2SVG สองไฟล์ ดาวน์โหลด ZIP SVG และตรวจสอบชื่อไฟล์และเนื้อหาเส้นทางจริงก่อนที่จะเชื่อถืออาร์ตเวิร์คของคุณเองจำนวนมากขึ้น
แปลงภาพทั้งโฟลเดอร์เป็น SVG ด้วย Claude Code
วางแผนแปลงภาพทั้งโฟลเดอร์ด้วย Claude Code และ PerfectVector MCP ระบุพาธผลลัพธ์ไม่ให้ซ้ำ แล้วตรวจในเครื่องว่า SVG ใดหายไป


