สร้างแชทบ็อตที่ทำงานแบบออฟไลน์และในเครื่องได้ด้วย Prompt API

เผยแพร่: 13 มกราคม 2025

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

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

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

สิทธิ์เข้าถึงโมเดลที่แชร์

Prompt API ทำงานคล้ายกับ WebLLM อย่างไรก็ตาม ในตอนนี้จะไม่มีการเลือกโมเดล (คุณต้องใช้ LLM ที่มาพร้อมกับเบราว์เซอร์) เมื่อเปิดใช้ AI ในตัว Chrome จะดาวน์โหลด Gemini Nano ลงในเบราว์เซอร์ จากนั้นจะแชร์โมเดลนี้ในหลายต้นทางและเรียกใช้ด้วย ประสิทธิภาพสูงสุดได้ มีปัญหาใน GitHub ที่นักพัฒนาซอฟต์แวร์ได้ขอให้เพิ่มฟีเจอร์การเลือกโมเดล

ตั้งค่าการสนทนา

คุณเริ่มการสนทนาด้วยข้อความได้ด้วยวิธีเดียวกัน แต่ Prompt API ยังมีไวยากรณ์แบบย่อเพื่อระบุพรอมต์ของระบบด้วย เริ่มเซสชันโมเดลภาษาโดยใช้วิธีcreate()ในอินเทอร์เฟซLanguageModel

const session = await LanguageModel.create({
  initialPrompt: [
    {
      type: 'system',
      content: `You are a helpful assistant. You will answer questions related
        to the user's to-do list. Decline all other requests not related to the
         user's todos. This is the to-do list in JSON: ${JSON.stringify(todos)}`,
    },
  ],
});

ตอบคำถามแรก

Prompt API มี 2 วิธีแยกกันแทนที่จะมีออบเจ็กต์การกำหนดค่าสำหรับการกำหนดค่าการสตรีม ดังนี้

  • prompt() จะแสดงผลสตริงทั้งหมด
  • promptStreaming() จะแสดงผลการวนซ้ำแบบไม่พร้อมกัน ซึ่งแตกต่างจาก WebLLM ตรงที่ Prompt API จะตอบกลับด้วยสตริงการตอบกลับแบบเต็ม คุณจึงไม่ต้อง รวมผลลัพธ์ด้วยตนเอง

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

const stream = session.promptStreaming("How many open todos do I have?");
for await (const reply of stream) {
  console.log(reply);
}

สาธิต

สรุป

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