นี่คือเทมเพลตปลั๊กอิน Figma AI ที่แสดงการตอบสนองแบบสตรีม LLM ภายในปลั๊กอิน Figma เทมเพลตนี้แสดง:
ปลั๊กอินนี้ได้รับการตั้งค่าให้ใช้ Next.js
ขั้นแรกให้สร้างเทมเพลตนี้โดยใช้ create-next-app:
npx create-next-app@latest --example https://github.com/figma/ai-plugin-template/
ถัดไป คุณจะต้องจัดเก็บคีย์ OpenAI API ไว้ในไฟล์ . .env.local
คุณสามารถรับคีย์ API ได้จากหน้าคีย์ API สร้างไฟล์ .env.local
ในรากของโปรเจ็กต์นี้และเพิ่มคีย์ API ของคุณ:
OPENAI_API_KEY= ***
จากนั้นรันเซิร์ฟเวอร์การพัฒนา:
npm i
npm run dev
จากนั้นคุณสามารถเปิดแอป Figma บนเดสก์ท็อปและนำเข้าปลั๊กอินจากไฟล์ Manifest ในโปรเจ็กต์นี้ได้ คุณสามารถคลิกขวาบนผืนผ้าใบแล้วไปที่ Plugins > Development > Import plugin from manifest...
และเลือก manifest.json
ใน {path to this project}/plugin/manifest.json
ไฟล์หลักที่คุณต้องการแก้ไขคือ:
app/page.tsx
: จะให้คุณอัปเดตปลั๊กอิน iframe
หน้าจะอัปเดตอัตโนมัติเมื่อคุณแก้ไขไฟล์ และจะให้คุณอัปเดตอินเทอร์เฟซผู้ใช้ของปลั๊กอินของคุณapp/completion/route.ts
: นี่คือ "เซิร์ฟเวอร์" ของปลั๊กอินและเป็นสิ่งที่พูดคุยกับ OpenAI ที่นี่คุณสามารถอัปเดตข้อความแจ้งที่คุณส่งไปยัง GPT ได้plugin/manifest.json
: นี่คือไฟล์ Manifest ที่จะช่วยให้คุณสามารถอัปเดตการอนุญาตและประเภทตัวแก้ไขของปลั๊กอินของคุณได้ ในตัวอย่างนี้ เราจะเผยแพร่แอป Next.js ไปยัง Vercel คุณยังสามารถเผยแพร่ไปยังผู้ให้บริการโฮสติ้งรายอื่นที่รองรับ Next.js ได้
OPENAI_API_KEY
เป็นคีย์ OpenAI API ของคุณsiteURL
ของไฟล์ package.json
ของคุณให้ชี้ไปที่ URL ที่ใช้งาน มันจะมีลักษณะคล้าย https://your-site-here.vercel.app/
"config" : {
"siteURL" : " https://your-site-here.vercel.app/ "
}
npm run build
เพื่อสร้าง build ที่ใช้งานจริงของปลั๊กอินของคุณที่ชี้ไปยัง URL ที่ปรับใช้ของคุณ เทมเพลตนี้มีตัวช่วย figmaAPI
ที่ @/lib/figmaAPI
ที่ให้คุณเรียกใช้โค้ดปลั๊กอินจากภายใน iframe สิ่งนี้มีประโยชน์ในการหลีกเลี่ยงปลั๊กอิน postMessage API ของ iframe <-> และลดจำนวนโค้ดที่คุณต้องเขียน
ตัวอย่าง:
import { figmaAPI } from "@/lib/figmaAPI" ;
const nodeId = "0:2" ;
const result = await figmaAPI . run (
( figma , { nodeId } ) => {
return figma . getNodeById ( nodeId ) ?. name ;
} ,
// Any variable you want to pass to the function must be passed as a parameter.
{ nodeId } ,
) ;
console . log ( result ) ; // "Page 1"
สิ่งที่ควรทราบเกี่ยวกับตัวช่วยนี้: