พอดีลองทำ App แงะใบเสร็จเลยลองใช้ตัว Azure Service Document Intelligent Sample
เปิดใช้งาน Azure Document Intelligent
- ก่อนอื่นต้องมี Account Azure กันก่อนครับ ถ้าไม่มีสมัครเลย
- หลังจากสมัครเข้ามาที่หน้า Portal เข้ามาที่ Azure AI Service เลือก Document Intelligent ผมมีสร้างลองไว้กับ App เล่นๆแล้ว ถ้าต้องการสร้างของตัวเองกด Create โลด
- ตอนนี้เลือก Region / กำหนด ชื่อ Resource / เลือก Pricing Tier อันนี้ ผมเลือก F0 ใช้งานน้อย ส่งวันละ 1-2 ไฟล์เอง
- จากนั้นที่เหลือ จริงๆ มันต้องมาสนใจนะ พวกจะเปิด Service จาก Interner ไหม อะไรงี้ แต่ผมใส่ส่วนตัว มันหายได้ทุกเมื่ออยู่แล้ว 55 เลยเอาตาม Default เปิดให้เข้าจาก Internet ถ้าอยากใช้แบบ Private มันเสียเงินแล้ว 555 พร้อมแล้วก็ Next รัวๆ ตามรูปใน Gallery
- ส่วนสรุป เราจะเห็นแล้วว่ามันบอกว่า F0 มัน 500 หน้า และ Limit ในการยิง 20 Req/Sec เราใช้ส่วนตัว ไม่เกินแน่ๆอยู่แล้ว พร้อมแล้วก็ Create เลย
- หลังจากรอให้ Deploy Resource Complete แล้ว เข้ามาที่หน้าแรกของ Resource เราจะเห็น Tier + Endpoint ที่ต้องใช้แล้ว
- ถ้าเลื่อนลงมาข้างล่างจะพบกับ Key & End Point จะมีข้อมูลทีจำเป็นสำหรับเราไป Intergrate กับ App ครับ
- Key 1 / Key 2 จะเอาไปใส่ใน Ocp-Apim-Subscription-Key ของ REST / SDK
- Endpoint บอกให้เราทราบว่าจะยิงไปที่ไหน รูปแบบ https://[YOUR_AI_RESOURCENAME].cognitiveservices.azure.com
ลองใช้ REST API
- base URL
ตัว Document Inteligenet จริงมันมี Model หลายตัว แต่ผมเลือกอ่านใบเสร็จ และไม่อยากทำ Custom อะไรเองด้วย เลือกใช้ Model prebuilt-receipt ทำให้หน้าตา URL จะประมาณนี้
https://[YOUR_AI_RESOURCENAME].cognitiveservices.azure.com/formrecognizer/documentModels/prebuilt-receipt
- [YOUR_AI_RESOURCENAME] - ชื่อ Resource ของเรา
จริงมันมี Model หลายตัวนะดูจากได้ Doc Use Document Intelligence client library or REST API - Azure AI services | Microsoft Learn บอก Endpoint ของแต่ละ Model เลย
- Get analyze
รูปแบบ Pattern Request ตามนี้เลย
curl --location 'https://[YOUR_AI_RESOURCENAME].cognitiveservices.azure.com/formrecognizer/documentModels/prebuilt-receipt:analyze?api-version=[API-VERSION]' \ --header 'Content-Type: application/json' \ --header 'Ocp-Apim-Subscription-Key: [YOUR_SERVICE_SUBSCRIPTION_KEY]' \ --data '{ "base64Source":"[YOUR_FILE_IN_BASE_64_FORMAT]" }'
- [YOUR_AI_RESOURCENAME] - ชื่อ Resource ของเรา
- [API-VERSION] - API Version
- [YOUR_SERVICE_SUBSCRIPTION_KEY] - Key ดูจากส่วนของ Key and Endpoint จากหน้าเว็บ Azure Portal ครับ
ตรวจส่วน Data เอาผมงงไปนานเหมือนกัน จริงมันต้องแบบ base64 ถ้ามีไฟล์ pdf / รูป ต้องแปลงเป็น base64 ก่อนครับ ของผมใน wsl ใช้คำสั่งประมาณนี้ครับ //ไฟล์ผมลองใบเสร็จตาบั๊กของปีที่แล้วนะ
base64 -w 0 EtaxTest14333-2400311.pdf > EtaxTest14333-2400311.base64
ถ้าอยากใช้ powershell ต้องลง ver 6++ เคยโดยมันหลอกตอนทำ kube เข็ดเลยทีเดว
พอเราได้ base64 แล้ว เอาไปแปะใน Postman ในส่วน body > raw ประมาณนี้ครับ (ถ้าเป็น curl จะอยู่ในส่วน --data นะ)
{ "base64Source":"<<YOUR-BASE-64-DATA>>" }
หลังจาก Run เสร็จมันมี Response กลับมา สิ่งที่เราต้องสนใจ ถ้ามี Return 2xx น่าจะ 202 มันจะคืนค่านึงมาให้ครับ apim-request-id
ครับ เลขชุดนี้ ต้องเอาไปใช้ยิงอีก Request เพื่อขอ Result
- Get analyzeResults
รูปแบบ Pattern Request ตามนี้เลย
curl --location 'https://[YOUR_AI_RESOURCENAME].cognitiveservices.azure.com/formrecognizer/documentModels/prebuilt-receipt/analyzeResults/[YOUR_APIM_RESOURCE_ID]?api-version=[API-VERSION]' \ --header 'Ocp-Apim-Subscription-Key: [YOUR_SERVICE_SUBSCRIPTION_KEY]'
- [YOUR_AI_RESOURCENAME] - ชื่อ Resource ของเรา
- [YOUR_APIM_RESOURCE_ID] - Respone Header ที่เราได้มาหลังจากส่ง Request analyze
- [API-VERSION] - API Version
- [YOUR_SERVICE_SUBSCRIPTION_KEY] - Key ดูจากส่วนของ Key and Endpoint จากหน้าเว็บ Azure Portal ครับ
ผลลัพธ์ที่ได้ประมาณนี้ครับ ตรงระดับนึงเลย ผมใช้ใบเสร็จตาบั๊กที่ขอ E-Tax จากนั้นลุยทำ App ต่อได้เลยครับ
ถ้าอยากลองดู JSON เต็มผมมี Sample มาให้นะ และมันจะมี Schema ของ Pre-Model ด้วยนะ ตามกันได้ ของ Reciepts ตามนี้ Supported document fields ดูตาม API-Version นะ
จบไปแล้วแล้ว อาจจะฉีกแนวนิดนึง หลายคนใช้ LLM กัน ไปลอง Deepseek (เพิ่งมาเห็นตอน Proof Check) เราหา AI Service ที่เหมาะกับงานเราพอ อย่างผมแค่อยากได้ตัว Extract ใบเสร็จมาลง Google Sheet / DB และทำ App มาแค่นั้นครับ Blog ต่อไปถ้าว่างๆ เดียวจะมีเขียนถึงตัว App นะครับ ตอนนี้ยังเป็น API กากๆ 555
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.