API ของไฟล์

ชุดโมเดลปัญญาประดิษฐ์ (AI) ของ Gemini สร้างขึ้นเพื่อรองรับ ข้อมูลอินพุตประเภทต่างๆ ซึ่งรวมถึงข้อความ รูปภาพ และเสียง เนื่องจากโมเดลเหล่านี้สามารถจัดการข้อมูลได้มากกว่า 1 ประเภทหรือโหมด โมเดล Gemini จึงเรียกว่าโมเดลมัลติโมดัล หรืออธิบายว่ามีความสามารถแบบมัลติโมดัล

คู่มือนี้จะแสดงวิธีทำงานกับไฟล์สื่อโดยใช้ Files API การดำเนินการพื้นฐานจะเหมือนกันสำหรับไฟล์เสียง รูปภาพ วิดีโอ เอกสาร และ ไฟล์ประเภทอื่นๆ ที่รองรับ

ดูคำแนะนำในการเขียนพรอมต์สำหรับไฟล์ได้ที่ส่วนคู่มือการเขียนพรอมต์สำหรับไฟล์

อัปโหลดไฟล์

คุณใช้ Files API เพื่ออัปโหลดไฟล์สื่อได้ ใช้ Files API เสมอเมื่อขนาดคำขอทั้งหมด (รวมถึงไฟล์ พรอมต์ข้อความ คำสั่งของระบบ ฯลฯ) ใหญ่กว่า 20 MB

โค้ดต่อไปนี้จะอัปโหลดไฟล์ แล้วใช้ไฟล์ในการเรียกไปยัง generateContent

Python

from google import genai

client = genai.Client()

myfile = client.files.upload(file="path/to/sample.mp3")

response = client.models.generate_content(
    model="gemini-2.5-flash", contents=["Describe this audio clip", myfile]
)

print(response.text)

JavaScript

import {
  GoogleGenAI,
  createUserContent,
  createPartFromUri,
} from "@google/genai";

const ai = new GoogleGenAI({});

async function main() {
  const myfile = await ai.files.upload({
    file: "path/to/sample.mp3",
    config: { mimeType: "audio/mpeg" },
  });

  const response = await ai.models.generateContent({
    model: "gemini-2.5-flash",
    contents: createUserContent([
      createPartFromUri(myfile.uri, myfile.mimeType),
      "Describe this audio clip",
    ]),
  });
  console.log(response.text);
}

await main();

Go

file, err := client.UploadFileFromPath(ctx, "path/to/sample.mp3", nil)
if err != nil {
    log.Fatal(err)
}
defer client.DeleteFile(ctx, file.Name)

model := client.GenerativeModel("gemini-2.5-flash")
resp, err := model.GenerateContent(ctx,
    genai.FileData{URI: file.URI},
    genai.Text("Describe this audio clip"))
if err != nil {
    log.Fatal(err)
}

printResponse(resp)

REST

AUDIO_PATH="path/to/sample.mp3"
MIME_TYPE=$(file -b --mime-type "${AUDIO_PATH}")
NUM_BYTES=$(wc -c < "${AUDIO_PATH}")
DISPLAY_NAME=AUDIO

tmp_header_file=upload-header.tmp

# Initial resumable request defining metadata.
# The upload url is in the response headers dump them to a file.
curl "${BASE_URL}/upload/v1beta/files" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -D "${tmp_header_file}" \
  -H "X-Goog-Upload-Protocol: resumable" \
  -H "X-Goog-Upload-Command: start" \
  -H "X-Goog-Upload-Header-Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Header-Content-Type: ${MIME_TYPE}" \
  -H "Content-Type: application/json" \
  -d "{'file': {'display_name': '${DISPLAY_NAME}'}}" 2> /dev/null

upload_url=$(grep -i "x-goog-upload-url: " "${tmp_header_file}" | cut -d" " -f2 | tr -d "\r")
rm "${tmp_header_file}"

# Upload the actual bytes.
curl "${upload_url}" \
  -H "Content-Length: ${NUM_BYTES}" \
  -H "X-Goog-Upload-Offset: 0" \
  -H "X-Goog-Upload-Command: upload, finalize" \
  --data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json

file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

# Now generate content using that file
curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent" \
    -H "x-goog-api-key: $GEMINI_API_KEY" \
    -H 'Content-Type: application/json' \
    -X POST \
    -d '{
      "contents": [{
        "parts":[
          {"text": "Describe this audio clip"},
          {"file_data":{"mime_type": "${MIME_TYPE}", "file_uri": '$file_uri'}}]
        }]
      }' 2> /dev/null > response.json

cat response.json
echo

jq ".candidates[].content.parts[].text" response.json

รับข้อมูลเมตาของไฟล์

คุณสามารถยืนยันว่า API จัดเก็บไฟล์ที่อัปโหลดเรียบร้อยแล้วและรับข้อมูลเมตาของไฟล์ได้โดยการเรียกใช้ files.get

Python

myfile = client.files.upload(file='path/to/sample.mp3')
file_name = myfile.name
myfile = client.files.get(name=file_name)
print(myfile)

JavaScript

const myfile = await ai.files.upload({
  file: "path/to/sample.mp3",
  config: { mimeType: "audio/mpeg" },
});

const fileName = myfile.name;
const fetchedFile = await ai.files.get({ name: fileName });
console.log(fetchedFile);

Go

file, err := client.UploadFileFromPath(ctx, "path/to/sample.mp3", nil)
if err != nil {
    log.Fatal(err)
}

gotFile, err := client.GetFile(ctx, file.Name)
if err != nil {
    log.Fatal(err)
}
fmt.Println("Got file:", gotFile.Name)

REST

# file_info.json was created in the upload example
name=$(jq ".file.name" file_info.json)
# Get the file of interest to check state
curl https://generativelanguage.googleapis.com/v1beta/files/$name \
-H "x-goog-api-key: $GEMINI_API_KEY" > file_info.json
# Print some information about the file you got
name=$(jq ".file.name" file_info.json)
echo name=$name
file_uri=$(jq ".file.uri" file_info.json)
echo file_uri=$file_uri

แสดงรายการไฟล์ที่อัปโหลด

คุณอัปโหลดหลายไฟล์ได้โดยใช้ Files API โค้ดต่อไปนี้จะรับรายการไฟล์ทั้งหมดที่อัปโหลด

Python

print('My files:')
for f in client.files.list():
    print(' ', f.name)

JavaScript

const listResponse = await ai.files.list({ config: { pageSize: 10 } });
for await (const file of listResponse) {
  console.log(file.name);
}

Go

iter := client.ListFiles(ctx)
for {
    ifile, err := iter.Next()
    if err == iterator.Done {
        break
    }
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(ifile.Name)
}

REST

echo "My files: "

curl "https://generativelanguage.googleapis.com/v1beta/files" \
  -H "x-goog-api-key: $GEMINI_API_KEY"

ลบไฟล์ที่อัปโหลด

ระบบจะลบไฟล์โดยอัตโนมัติหลังจากผ่านไป 48 ชั่วโมง นอกจากนี้ คุณยังลบไฟล์ที่อัปโหลดด้วยตนเองได้โดยทำดังนี้

Python

myfile = client.files.upload(file='path/to/sample.mp3')
client.files.delete(name=myfile.name)

JavaScript

const myfile = await ai.files.upload({
  file: "path/to/sample.mp3",
  config: { mimeType: "audio/mpeg" },
});

const fileName = myfile.name;
await ai.files.delete({ name: fileName });

Go

file, err := client.UploadFileFromPath(ctx, "path/to/sample.mp3", nil)
if err != nil {
    log.Fatal(err)
}
client.DeleteFile(ctx, file.Name)

REST

curl --request "DELETE" https://generativelanguage.googleapis.com/v1beta/files/$name \
  -H "x-goog-api-key: $GEMINI_API_KEY"

ข้อมูลการใช้งาน

คุณใช้ Files API เพื่ออัปโหลดและโต้ตอบกับไฟล์สื่อได้ Files API ช่วยให้คุณจัดเก็บไฟล์ได้สูงสุด 20 GB ต่อโปรเจ็กต์ โดยแต่ละไฟล์ต้องมีขนาดไม่เกิน 2 GB ระบบจะจัดเก็บไฟล์ไว้เป็นเวลา 48 ชั่วโมง ในระหว่างนั้น คุณจะ ใช้ API เพื่อรับข้อมูลเมตาเกี่ยวกับไฟล์ได้ แต่จะดาวน์โหลดไฟล์ไม่ได้ Files API พร้อมให้บริการโดยไม่มีค่าใช้จ่ายในทุกภูมิภาคที่ Gemini API พร้อมให้บริการ

กลยุทธ์การแจ้งไฟล์

ส่วนนี้จะให้คำแนะนำและแนวทางปฏิบัติแนะนำในการใช้ไฟล์สื่อกับ พรอมต์สำหรับ Gemini API

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

พรอมต์ การตอบกลับ

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


คุกกี้

การเตรียมอาหารล่วงหน้าเป็นวิธีที่ยอดเยี่ยมในการประหยัดเวลาและเงิน รวมถึงยังช่วยให้คุณกินอาหารที่ดีต่อสุขภาพมากขึ้นได้ด้วย มื้ออาหารนี้เป็นตัวอย่างที่ดีของมื้ออาหารเพื่อสุขภาพ และอร่อยที่เตรียมไว้ล่วงหน้าได้ง่ายๆ

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

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

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

ขอให้คุณเตรียมอาหารได้อย่างอร่อยและดีต่อสุขภาพ

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

คุณปรับปรุงพรอมต์มัลติโมดัลได้โดยทำตามแนวทางปฏิบัติแนะนำต่อไปนี้

  • ข้อมูลพื้นฐานเกี่ยวกับการออกแบบพรอมต์

    • ระบุวิธีการอย่างชัดเจน: สร้างวิธีการที่ชัดเจนและกระชับซึ่งมีโอกาสน้อยที่จะเกิดการตีความผิด
    • เพิ่มตัวอย่าง 2-3 รายการลงในพรอมต์: ใช้ตัวอย่างแบบ Few-Shot ที่สมจริงเพื่ออธิบายสิ่งที่คุณต้องการทำให้สำเร็จ
    • แบ่งงานออกเป็นขั้นตอน: แบ่งงานที่ซับซ้อนออกเป็นเป้าหมายย่อยที่จัดการได้ เพื่อนำทางโมเดลผ่านกระบวนการ
    • ระบุรูปแบบเอาต์พุต: ในพรอมต์ ให้ขอเอาต์พุตในรูปแบบที่ต้องการ เช่น มาร์กดาวน์, JSON, HTML และอื่นๆ
    • วางรูปภาพไว้ก่อนสำหรับพรอมต์ที่มีรูปภาพเดียว: แม้ว่า Gemini จะจัดการอินพุตรูปภาพและข้อความได้ทุกรูปแบบ แต่สำหรับพรอมต์ที่มีรูปภาพเดียว รูปภาพ (หรือวิดีโอ) นั้นอาจทำงานได้ดีกว่าหากวางไว้ก่อนพรอมต์ข้อความ อย่างไรก็ตาม สำหรับพรอมต์ที่ต้องสลับรูปภาพกับข้อความอย่างมากเพื่อให้เข้าใจได้ ให้ใช้ลำดับใดก็ได้ที่ดูเป็นธรรมชาติที่สุด
  • การแก้ปัญหาพรอมต์มัลติโมดัล

    • หากโมเดลไม่ได้ดึงข้อมูลจากส่วนที่เกี่ยวข้องของรูปภาพ ให้บอกใบ้ว่าคุณต้องการให้พรอมต์ดึงข้อมูลจากส่วนใดของรูปภาพ
    • หากเอาต์พุตของโมเดลเป็นแบบทั่วไปมากเกินไป (ไม่ปรับให้เข้ากับอินพุตรูปภาพ/วิดีโอมากพอ): ที่จุดเริ่มต้นของพรอมต์ ให้ลองขอให้โมเดลอธิบายรูปภาพหรือวิดีโอก่อนที่จะให้คำสั่งงาน หรือลองขอให้โมเดลอ้างอิงถึงสิ่งที่อยู่ในรูปภาพ
    • หากต้องการแก้ปัญหาว่าส่วนใดล้มเหลว: ขอให้โมเดลอธิบายรูปภาพ หรือขอให้โมเดลอธิบายเหตุผลเพื่อวัดความเข้าใจเริ่มต้นของโมเดล
    • หากพรอมต์ทำให้เกิดเนื้อหาที่โมเดลแต่งขึ้น ให้ลองลดการตั้งค่าอุณหภูมิหรือขอให้โมเดลอธิบายสั้นลง เพื่อลดโอกาสที่โมเดลจะคาดการณ์รายละเอียดเพิ่มเติม
    • การปรับพารามิเตอร์การสุ่มตัวอย่าง: ทดลองใช้การตั้งค่าอุณหภูมิและการเลือกแบบ Top-k ที่แตกต่างกันเพื่อปรับความคิดสร้างสรรค์ของโมเดล

ระบุคำสั่งให้ชัดเจน

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

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

พรอมต์ คำตอบของโมเดล

อธิบายรูปภาพนี้

รูปภาพแสดงตารางเที่ยวบินขาเข้าและขาออกของสนามบิน

พรอมต์ที่อัปเดตแล้ว การตอบสนองที่ดียิ่งขึ้น
ตารางเวลาการเดินทาง

แยกวิเคราะห์เวลาและเมืองจากบอร์ดสนามบินที่แสดงในรูปภาพนี้เป็นรายการ

  • 10:50 มอสโก
  • 11:05 เอดินบะระ
  • 11:05 ลอนดอน
  • 11:10 บูคาเรสต์
  • 11:30 น. เคียฟ
  • 11:35 ดับลิน
  • 11:45 อีสต์มิดแลนส์
  • 12:15 โซเฟีย
  • 12:30 ลอนดอน
  • 12:30 นิวคาสเซิล
  • 12:40 เซนต์ปีเตอร์สเบิร์ก
  • 12:40 ลอนดอน
  • 12:45 แมนเชสเตอร์
  • เพิ่มตัวอย่าง 2-3 รายการ

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

    ในตัวอย่างด้านล่าง ผลลัพธ์เริ่มต้นจะเขียนในรูปแบบประโยคและมี ประเทศ (บราซิล) ด้วย สมมติว่าคุณต้องการเอาต์พุตในรูปแบบหรือสไตล์อื่น และต้องการเฉพาะเมือง ไม่ใช่ประเทศ การเพิ่มตัวอย่างแบบ Few-Shot ลงในพรอมต์จะช่วยให้โมเดล ตอบสนองในแบบที่คุณต้องการ

    พรอมต์ คำตอบของโมเดล
    ตารางเวลาการเดินทาง

    ระบุเมืองพร้อมกับสถานที่สำคัญ

    สถานที่สำคัญคือรูปปั้นพระคริสต์ผู้ไถ่ในรีโอเดจาเนโร ประเทศบราซิล

    พรอมต์ที่อัปเดตแล้ว การตอบสนองที่ดียิ่งขึ้น

    ระบุเมืองพร้อมกับสถานที่สำคัญ

    โคลอสเซียม

    เมือง: โรม, สถานที่สำคัญ: โคลอสเซียม

    นครต้องห้าม

    เมือง: ปักกิ่ง, สถานที่สำคัญ: พระราชวังต้องห้าม

    forbidden-city

    เมือง: รีโอเดจาเนโร, สถานที่สำคัญ: รูปปั้นพระคริสต์ผู้ไถ่

    ดูรายละเอียดทีละขั้นตอน

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

    พรอมต์ คำตอบของโมเดล

    กระดาษชำระจะหมดเมื่อใด

    คุณจะเหลือม้วนฟิล์มเพียง 3 ม้วนในเร็วๆ นี้

    พรอมต์ที่อัปเดตแล้ว การตอบสนองที่ดียิ่งขึ้น

      1. ก่อนอื่น ให้นับม้วนกระดาษชำระในรูปภาพนี้
      2. จากนั้นให้พิจารณาว่าโดยทั่วไปแล้วคนเราใช้กระดาษชำระวันละเท่าไร
      3. คำนวณว่ากระดาษชำระเหล่านี้จะใช้ได้นานเท่าใด

      1. มีกระดาษชำระ 3 ม้วนในรูปภาพนี้
      2. โดยทั่วไปแล้ว คนเราใช้กระดาษชำระประมาณ 20 แผ่นต่อวัน
      3. หากกระดาษชำระแต่ละม้วนมี 200 แผ่น กระดาษชำระแต่ละม้วนจะใช้ได้ประมาณ 10 วัน ดังนั้น ฟิล์ม 3 ม้วนจะใช้งานได้ประมาณ 1 เดือน

    โจทย์คณิตศาสตร์หรือโจทย์ประเภทอื่นๆ เป็นตัวเลือกที่ยอดเยี่ยมในการขอให้โมเดลคิดแบบทีละขั้นตอน

    พรอมต์ การตอบกลับ

    พจน์ที่ 4 ในลำดับคืออะไร

    -135

    คำตอบจากโมเดลไม่ถูกต้อง วิธีปรับปรุงเรื่องนี้คือการขอให้โมเดลแยกวิเคราะห์ปัญหา ก่อนตอบพรอมต์

    พรอมต์ การตอบกลับ

    แยกวิเคราะห์สูตรในรูปภาพก่อน

    จากนั้นตอบคำถาม "พจน์ที่ 4 ในลำดับคืออะไร" โดยอิงตามสูตร

    คลิกเพื่อขยายผลลัพธ์

    $$ b(n) = b(n-1) * (-3) $$

    $$ b(1) = 15 $$

    1. แทนที่ n = 4 ในสูตร
    2. $$ b(4) = b(4-1) * (-3) $$

      $$ b(4) = b(3) * (-3) $$

    3. เราไม่ทราบค่าของ b(3) ดังนั้นให้แทนค่า n = 3 ลงในสูตร
    4. $$ b(3) = b(3-1) * (-3) $$

      $$ b(3) = b(2) * (-3) $$

    5. เราไม่ทราบค่าของ b(2) ดังนั้นให้แทนค่า n = 2 ลงในสูตร
    6. $$ b(2) = b(2-1) * (-3) $$

      $$ b(2) = b(1) * (-3) $$

    7. เรารู้ว่าค่าของ b(1) คือ 15 ดังนั้นให้แทนค่าลงในสูตร
    8. $$ b(2) = 15 * (-3) $$

      $$ b(2) = -45 $$

    9. เมื่อทราบค่าของ b(2) แล้ว ให้แทนค่าลงในสูตรสำหรับ b(3) ดังนี้
    10. $$ b(3) = b(2) * (-3) $$

      $$ b(3) = -45 * (-3) $$

      $$ b(3) = 135 $$

    11. ตอนนี้เราทราบค่าของ b(3) แล้ว ให้แทนค่าลงในสูตรสำหรับ b(4) ดังนี้
    12. $$ b(4) = b(3) * (-3) $$

      $$ b(4) = 135 * (-3) $$

      $$ b(4) = -405 $$

    ดังนั้น พจน์ที่ 4 ในลำดับคือ -405

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

    พรอมต์ที่อัปเดตแล้ว การตอบสนองที่ดียิ่งขึ้น

    พจน์ที่ 4 ในลำดับคืออะไร คิดทีละขั้นตอน

    พจน์แรกคือ 15

    พจน์ที่ 2 คือ b(1) * (-3) = 15 * (-3) = -45

    พจน์ที่ 3 คือ b(2) * (-3) = -45 * (-3) = 135

    พจน์ที่ 4 คือ b(3) * (-3) = 135 * (-3) = -405

    ระบุรูปแบบเอาต์พุต

    ปัญหาที่พบบ่อยคือความจำเป็นที่เอาต์พุตของโมเดลต้องอยู่ในรูปแบบที่แน่นอน (เช่น Markdown, JSON, HTML) โดยเฉพาะอย่างยิ่งหากงานดาวน์สตรีมต้อง รับข้อมูลเอาต์พุตของโมเดล คุณลองสร้างเอาต์พุตในรูปแบบนั้นได้ โดยสั่งให้โมเดลทำเช่นนั้นภายในพรอมต์ ตัวอย่าง 2 รายการมีดังนี้

    พรอมต์ คำตอบของโมเดล

    แยกวิเคราะห์ตารางในรูปภาพนี้เป็นรูปแบบมาร์กดาวน์

    | เรื่อง | สถานะ | เวลา | วันที่เริ่มต้น | ครบกำหนด |

    | ------- | ------ | ---- | ---------- | ------ |

    | คณิตศาสตร์ | เสร็จแล้ว | 1.5 ชม. | 29/11/2023 | 1/12/2023 |

    | ภูมิศาสตร์ | เสร็จแล้ว | 30 นาที | 2/12/2023 | 4/12/2023 |

    | ฟิสิกส์ | อยู่ระหว่างดำเนินการ | 2 ชั่วโมง | 03/12/2023 | 05/12/2023 |

    | ชีววิทยา | ยังไม่เริ่ม | 6 ชั่วโมง | 02/11/2016 | 06/12/2023 |

    พรอมต์ คำตอบของโมเดล

    ระบุรายการแอตทริบิวต์ต่อไปนี้ทั้งหมด

    ส่วนผสม ประเภทอาหาร มังสวิรัติหรือไม่ ในรูปแบบ JSON

    ```json

    {

    "ingredients": [

    "rice",

    "shrimp",

    "clams",

    "mussels",

    "peas",

    "tomatoes",

    "onions",

    "garlic",

    "olive oil",

    "paprika",

    "salt",

    "pepper"

    ],

    "type of cuisine": "Spanish",

    "vegetarian": false

    }

    ```

    วางรูปภาพไว้ก่อนสำหรับพรอมต์แบบรูปภาพเดียว

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

    การแก้ปัญหาพรอมต์แบบหลายรูปแบบ

    คุณอาจต้องแก้ปัญหาพรอมต์หากไม่ได้รับคำตอบที่เป็นประโยชน์ คุณลองใช้กลยุทธ์ต่อไปนี้ได้

    หากโมเดลไม่ได้ดึงข้อมูลจากส่วนที่เกี่ยวข้องของรูปภาพ

    หากต้องการคำตอบที่เฉพาะเจาะจงมากขึ้น คุณสามารถระบุลักษณะของรูปภาพ ที่ต้องการให้พรอมต์ดึงข้อมูลมาใช้ในการตอบกลับ

    พรอมต์ คำตอบของโมเดล

    ผ้าอ้อมเหล่านี้จะใช้ได้นานกี่วันสำหรับทารก

    ผ้าอ้อมจะใช้ได้ 198 วันก่อนจะหมด

    พรอมต์ที่อัปเดตแล้ว การตอบสนองที่ดียิ่งขึ้น

    ผ้าอ้อมเหล่านี้จะใช้ได้นานแค่ไหนก่อนจะหมด

    ใช้น้ำหนักที่แสดงบนกล่องเพื่อกำหนดอายุของเด็ก และใช้จำนวนผ้าอ้อมทั้งหมดในกล่อง

    นำจำนวนทั้งหมดมาหารด้วยจำนวนผ้าอ้อมที่เด็กใช้ต่อวัน

    กล่องมีผ้าอ้อม 198 ชิ้น กล่องระบุว่าผ้าอ้อมนี้เหมาะสำหรับเด็กที่มีน้ำหนัก 22-37 ปอนด์

    เด็กที่มีน้ำหนักในช่วงนี้มักจะมีอายุระหว่าง 1-2 ปี

    โดยปกติแล้วเด็กอายุ 2 ขวบจะใช้ผ้าอ้อม 6 ผืนต่อวัน ดังนั้นผ้าอ้อมจะใช้ได้ประมาณ 33 วัน (198/6)

    หากเอาต์พุตของโมเดลเป็นแบบทั่วไปมากเกินไปและไม่ปรับให้เข้ากับอินพุตรูปภาพ

    หากต้องการช่วยให้โมเดลปรับคำตอบให้เหมาะกับรูปภาพ ให้ลองขอให้โมเดลอธิบายรูปภาพก่อนที่จะดำเนินการให้เหตุผล

    พรอมต์ คำตอบของโมเดล

    รูปภาพเหล่านี้มีอะไรที่เหมือนกัน

    รูปภาพทั้ง 4 รูปเป็นตัวอย่างของการถ่ายภาพทิวทัศน์

    พรอมต์ที่อัปเดตแล้ว การตอบสนองที่ดียิ่งขึ้น

    ก่อนอื่น ให้อธิบายสิ่งที่อยู่ในแต่ละรูปภาพโดยละเอียด รูปภาพเหล่านี้มีอะไรที่เหมือนกัน

    รูปภาพแรกแสดงภาพคนกำลังจัดกระเป๋าเดินทาง ภาพที่ 2 แสดงทางเดินที่ว่างเปล่าในห้างสรรพสินค้า รูปภาพที่ 3 แสดงม้วนกระดาษชำระ รูปภาพที่ 4 แสดงทะเลที่มืดครึ้มและมีพายุ

    สิ่งที่เหมือนกันในรูปภาพเหล่านี้คือเป็นตัวอย่างของพื้นที่ก้ำกึ่ง Liminal Space คือสถานที่หรือสถานการณ์ที่อยู่ระหว่างสถานที่หรือสถานการณ์อื่นๆ 2 แห่ง โดยมักมีลักษณะของความไม่แน่นอนหรือความคลุมเครือ

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

    ภาพที่ 4 แสดงทะเลในระหว่างที่สงบและมีพายุ

    พื้นที่กึ่งกลางอาจทั้งน่าตื่นเต้นและน่ากังวล เป็นสถานที่แห่งการเริ่มต้นใหม่หรือเป็นสถานที่แห่งการสิ้นสุด ซึ่งอาจเป็นที่ที่ใช้ไตร่ตรองหรือที่ที่ใช้ลงมือทำ

    นอกจากนี้ คุณยังลองถามโมเดลอย่างชัดเจนให้ดูสิ่งที่อยู่ในรูปภาพได้ด้วย

    พรอมต์ที่อัปเดตแล้ว การตอบสนองที่ดียิ่งขึ้น

    รูปภาพเหล่านี้มีอะไรที่เหมือนกัน อ้างอิงสิ่งที่อยู่ในรูปภาพในคำตอบ

    รูปภาพทั้งหมดเกี่ยวข้องกับการท่องเที่ยว รูปภาพแรกแสดงคนกำลังจัดกระเป๋าเดินทาง รูปภาพที่ 2 แสดง ทางเดินที่ว่างเปล่าในห้างสรรพสินค้า รูปภาพที่ 3 แสดงกระดาษชำระที่วางซ้อนกัน และรูปภาพที่ 4 แสดง ทะเลที่มืดครึ้มและมีพายุ

    รูปภาพเหล่านี้เกี่ยวข้องกับการเดินทางทั้งหมดเนื่องจากเป็นสิ่งที่ผู้คนต้องการหรือใช้เมื่อเดินทาง ภาพแรกแสดงให้เห็นบุคคลกำลังจัดกระเป๋าเดินทาง ซึ่งเป็นสิ่งที่ผู้คนทำเมื่อ กำลังจะเดินทาง รูปภาพที่ 2 แสดงทางเดินที่ว่างเปล่าในห้างสรรพสินค้า ซึ่งเป็นสถานที่ที่ผู้คน มักจะไปซื้อของสำหรับการเดินทาง รูปภาพที่ 3 แสดงกระดาษชำระ ซึ่งเป็นสิ่งที่ ผู้คนมักใช้เมื่อเดินทาง รูปภาพที่ 4 แสดงทะเลที่มืดครึ้มและมีพายุ ซึ่งเป็น สิ่งที่ผู้คนมักพบเจอเมื่อเดินทาง

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

    พรอมต์ คำตอบของโมเดล

    ช่วยแต่งกลอนเกี่ยวกับรูปภาพนี้ให้หน่อยได้ไหม

    กระต่ายน้อยตัวนุ่มสีน้ำตาล
    กระโดดไปมาในทุ่ง
    หูยาว หางสั้น
    เจ้าเป็นสัตว์ที่น่ารักที่สุดในบรรดาสัตว์ทั้งหมด

    เจ้ากินหญ้าเขียวหวาน
    แล้วกระโดดหนีเมื่อเห็นฉัน
    แต่ฉันจะเป็นเพื่อนของเธอเสมอ
    กระต่ายน้อย จนกว่าจะถึงวันสุดท้าย

    พรอมต์ที่อัปเดตแล้ว การตอบสนองที่ดียิ่งขึ้น

    ช่วยแต่งกลอนที่บรรยายและน่าตื่นเต้นเกี่ยวกับรูปภาพนี้พร้อมระบุสถานที่ได้ไหม

    กระต่ายน้อยบนทุ่งหญ้าเขียว
    หูยาวแสนเฉลียว
    คุณเห็นอะไรที่นั่น
    ในระยะไกลที่คุณจ้องมอง

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

    กระต่ายน้อยบอกฉันหน่อย
    อะไรที่ดึงดูดความสนใจของเธอ
    ลมทะเลเค็ม
    หรือเสียงร้องของนกนางนวลที่ทำให้เพลิน

    อาจเป็นเพราะความกว้างใหญ่ของทุกสิ่ง
    โลกที่ทั้งใหญ่และเล็ก
    ที่ซึ่งความฝันจะโลดแล่น
    และเรื่องราวผจญภัยจะงอกเงย

    กระต่ายน้อย ฉันสงสัยว่าเธอฝันถึงอะไร
    ขณะนั่งอยู่บนหญ้าอย่างเงียบสงบ
    คุณอยากสำรวจใต้ทะเลลึก
    หรือจะอยู่บนบกที่กระโดดโลดเต้นได้

    ไม่ว่าจะเป็นอะไรก็ตาม เจ้ากระต่ายน้อย
    จงรักษาประกายแห่งความสงสัยให้ส่องสว่างต่อไป
    เพราะในความฝันและความปรารถนา
    มีโลกที่รอให้คุณสร้างสรรค์

    การแก้ปัญหาว่าส่วนใดของพรอมต์ที่ล้มเหลว

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

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

    พรอมต์ พรอมต์สำหรับการแก้ปัญหา

    ฉันจะทำของว่างอะไรได้บ้างใน 1 นาทีที่กินกับสิ่งนี้ได้ดี

    อธิบายสิ่งที่อยู่ในรูปภาพนี้

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

    พรอมต์ พรอมต์สำหรับการแก้ปัญหา

    ฉันจะทำของว่างอะไรได้บ้างใน 1 นาทีที่กินกับสิ่งนี้ได้ดี

    ฉันจะทำของว่างอะไรได้บ้างใน 1 นาทีที่กินกับสิ่งนี้ได้ดี โปรดให้เหตุผล

    ขั้นตอนถัดไป

    • ลองเขียนพรอมต์มัลติโมดัลของคุณเองโดยใช้ AI ของ Google Studio
    • ดูข้อมูลเกี่ยวกับการใช้ Gemini Files API สำหรับ การอัปโหลดไฟล์สื่อและการรวมไฟล์เหล่านั้นไว้ในพรอมต์ได้ที่คำแนะนำเกี่ยวกับ Vision, Audio และ การประมวลผลเอกสาร
    • ดูคำแนะนำเพิ่มเติมเกี่ยวกับการออกแบบพรอมต์ เช่น การปรับพารามิเตอร์การสุ่มตัวอย่าง ได้ที่หน้ากลยุทธ์การใช้พรอมต์