สร้างผู้ช่วยเขียนโดย AI ด้วย Wordcraft

เราชอบเรื่องราว การเล่าเรื่องราวและการเขียนเชิงสร้างสรรค์รูปแบบอื่นๆ สามารถ เป็นเรื่องที่ท้าทายและให้ผลตอบแทนที่คุ้มค่า การสร้างเรื่องราวของคุณเองจากหน้าว่าง แต่อาจทั้งน่าหวาดเสียวและยุ่งยากในบางครั้ง ประดิษฐ์ โมเดล Generative AI (AI) เป็นเครื่องมือที่ยอดเยี่ยมที่จะช่วยให้คุณก้าวข้าม หน้าว่างแล้วสร้างการเล่าเรื่อง

บทแนะนํานี้จะแสดงวิธีขยายระยะเวลา คำหัตถกรรม เครื่องมือการเขียนเรื่องราวที่ทำงานด้วยระบบ AI ที่สร้างโดยPeople and AI Research ของ Google ทีม เว็บแอปพลิเคชันนี้ใช้ Gemini API ที่ช่วยคุณสร้างเรื่องราวทีละส่วนด้วยการสร้างสรรค์ไอเดียและเขียนส่วนต่างๆ เรื่องราวของคุณอยู่เสมอ และการแก้ไขเนื้อหาเพื่อเพิ่มรายละเอียด คุณแก้ไข Wordcraft ได้ ให้ตรงกับสไตล์การเขียนของคุณมากขึ้น และสร้างการควบคุมการเขียนแบบใหม่ เพื่อรองรับเวิร์กโฟลว์ของคุณได้ดีขึ้น

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

การตั้งค่าโปรเจ็กต์

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

ติดตั้งสิ่งที่ต้องมีก่อน

โปรเจ็กต์ Wordcraft ใช้โหนดและ npm เพื่อจัดการ แพ็กเกจของคุณและเรียกใช้แอปพลิเคชัน คำแนะนำในการติดตั้งมีดังต่อไปนี้ สำหรับเครื่องโฮสต์ Linux

วิธีติดตั้งซอฟต์แวร์ที่จำเป็น

โคลนและกำหนดค่าโปรเจ็กต์

ดาวน์โหลดรหัสโปรเจ็กต์และใช้คำสั่งการติดตั้ง npm เพื่อดาวน์โหลด ทรัพยากร Dependency ที่จำเป็นและกำหนดค่าโปรเจ็กต์ คุณต้องมี git ซอฟต์แวร์ควบคุมแหล่งที่มาเพื่อเรียกโปรเจ็กต์ ซอร์สโค้ด
วิธีดาวน์โหลดและกำหนดค่ารหัสโปรเจ็กต์

  1. โคลนที่เก็บ Git โดยใช้คำสั่งต่อไปนี้
    git clone https://github.com/PAIR-code/wordcraft
    
  2. ไปที่ไดเรกทอรีรูทของโปรเจ็กต์ Wordcraft
    cd wordcraft/
    
  3. เรียกใช้คำสั่งติดตั้งเพื่อดาวน์โหลดทรัพยากร Dependency และกำหนดค่าโปรเจ็กต์ดังนี้
    npm install
    

ตั้งค่าตัวแปรสภาพแวดล้อม

ตั้งค่าตัวแปรสภาพแวดล้อมที่จำเป็นเพื่ออนุญาตโค้ด Wordcraft โปรเจ็กต์ที่เรียกใช้ โดยเฉพาะคีย์ Google Gemini API วิธีการติดตั้งมีไว้สำหรับเครื่องโฮสต์ Linux

วิธีตั้งค่าตัวแปรสภาพแวดล้อม

  1. รับคีย์ Google Gemini API แล้วคัดลอกสตริงคีย์
  2. ไปที่ไดเรกทอรีรูทของโปรเจ็กต์ Wordcraft
    cd wordcraft/
    
  3. ตั้งค่าคีย์ API เป็นตัวแปรสภาพแวดล้อม ในโฮสต์ Linux ให้ใช้ คำสั่งต่อไปนี้
    touch .env
    echo "API_KEY="<YOUR_API_KEY>"" > .env
    

ทดสอบการตั้งค่า

ตอนนี้คุณควรทดสอบการตั้งค่าโปรเจ็กต์ได้โดยเรียกใช้ Wordcraft ใน อุปกรณ์ เราแนะนำให้ทำขั้นตอนนี้ (ไม่บังคับ)

หน้าจอเริ่มต้น Wordcraft

หากต้องการทดสอบการติดตั้งและการตั้งค่า ให้ทำดังนี้

  1. ไปที่ไดเรกทอรีรูทของโปรเจ็กต์ Wordcraft
    cd wordcraft/
    
  2. เรียกใช้โปรเจ็กต์ในโหมดการพัฒนา:
    npm run dev
    
  3. ไปที่อินเทอร์เฟซผู้ใช้ Wordcraft ในเว็บเบราว์เซอร์ อีเมลที่ระบุจะแสดงในเอาต์พุตของคำสั่งก่อนหน้า เช่น
    http://localhost:3000/
    

แก้ไขข้อความตัวอย่างพรอมต์

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

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

วิธีแก้ไขตัวอย่างเรื่องราวใหม่ใน Wordcraft

  1. เปิดไฟล์ wordcraft/app/context/json/new_story.json
  2. แก้ไขตัวอย่างขณะที่คงโครงสร้างโดยรวมของ JSON ไว้ ต่อไปนี้เป็นตัวอย่างการดัดแปลงบทนำเรื่องลึกลับโดยใช้ รูปแบบการพูดคนเดียวภายใน
    [
      {
        "topic": "scientist disappears and their research into a new technology is gone",
        "target": "I got the call from the chief early Tuesday morning, before I'd even had a second sip of coffee. Terrible timing. Something about a researcher disappearing from the local university. Unusual for the research lab to ask for assistance, so I headed over to main lab building."
      },
      {
        "topic": "a young woman wakes up with no memory",
        "target": "An unfamiliar ceiling with harsh, white lights greeted my eyes as I opened them. I looked around. White walls, medical equipment, a hospital? Wait. Where am I? How did I get here?!"
      },
      {
        "topic": "old man tries to recall an important task as his memories gradually fade away",
        "target": "What was I supposed to do today? Feels like it was important. I stared into the kitchen cabinet full of mismatched mugs, mirroring my own confusion. What was it? Like someone is...in danger? A chill shot down my spine, but the details skittered off and hid in some dark corner of my head."
      },
      {
        "topic": "billionaire is found dead in a hotel room",
        "target": "People meet their end every day, some naturally, some unnaturally. After 17 years of working as a homicide detective in Seattle, I'd seen a lot more of the unnatural variety than most. Comes with the job, along with a hard-learned sense of what side of the line any given incident sat on. This...was murder."
      },
      {
        "topic": "retired covert operative gets dragged back into an old mission",
        "target": "Steam rose gently off the cup of Earl Grey sitting in front of me as I sat at the cafe, pedestrians and light traffic rolling by. The city was slowly waking up around me and my perfect Paris morning routine was shaping up nicely. Then I noticed that old familiar and unwelcome tingling on the back of my neck. I was being watched."
      }
    ]
  3. บันทึกการเปลี่ยนแปลงลงในไฟล์ `new_story.json`

วิธีทดสอบการดำเนินการเรื่องราวใหม่ที่แก้ไข

  1. ไปที่ไดเรกทอรีรูทของโปรเจ็กต์ Wordcraft
    cd wordcraft/
    
  2. เรียกใช้โปรเจ็กต์ในโหมดการพัฒนา หากทำงานอยู่แล้ว คุณอาจ จำเป็นต้องหยุดแอปและรีสตาร์ท
    npm run dev
    
  3. ไปที่อินเทอร์เฟซผู้ใช้ Wordcraft ในเว็บเบราว์เซอร์ อีเมลที่ระบุจะแสดงในเอาต์พุตของคำสั่งก่อนหน้า เช่น
    http://localhost:3000/
    
  4. ไปที่เมนูหลักของ Wordcraft และเลือกเริ่มเรื่องราวใหม่
  5. อัปเดตพรอมต์เรื่องราวใหม่หรือเปลี่ยนเป็นเนื้อหาที่ต้องการ จากนั้นเลือก เริ่มเรื่องราวใหม่

คุณสามารถแก้ไขตัวควบคุมการเขียนเรื่องราวที่มีอยู่ทั้งหมดใน Wordcraft ได้โดยใช้ ลองเปลี่ยนการควบคุมเรื่องราวอื่นๆ โดยอัปเดตตัวอย่างใน ไดเรกทอรี wordcraft/app/context/json/

สร้างการควบคุมการเขียนใหม่

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

การแก้ไขตัวอย่างต่อไปนี้จะสร้างการควบคุมอักขระใหม่สำหรับ Wordcraft คุณสามารถใช้ฟีเจอร์นี้เพื่อแนะนำตัวละครใหม่ให้กับเรื่องราวได้ด้วย คำอธิบายแอตทริบิวต์ของตัวละครนั้น พื้นฐานของการควบคุมนี้ จะเหมือนกับการควบคุมอื่นๆ ของ Wordcraft เช่น การควบคุมเริ่มเรื่องราวใหม่ ที่เราได้พูดถึงก่อนหน้านี้ คุณสามารถสร้างไฟล์ JSON พร้อมตัวอย่าง 2-3 อย่างที่คุณต้องการ ตัวละครที่จะเปิดตัว การเปลี่ยนแปลงที่เหลือจะเพิ่มอินเทอร์เฟซผู้ใช้และ ฟังก์ชันการจัดการพรอมต์ AI

สร้างตัวอย่าง

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

หากต้องการเพิ่มตัวอย่างสำหรับการควบคุมใหม่ ให้ทำดังนี้

  1. สร้างไฟล์ wordcraft/app/context/json/new_character.json
  2. สร้างตัวอย่างในไฟล์ JSON สำหรับตัวอย่างนี้ แต่ละตัวอย่างมี ช่องคำอธิบาย character ซึ่งแสดงข้อความแจ้ง และข้อความ target ซึ่งแสดงเอาต์พุตที่คาดไว้
    [
      {
        "character": "A character who is helpful and modest.",
        "target": "\"You lost, buddy?\" came a voice from behind me. Turning, I discovered a man dressed in a simple but presentable outfit. Small signs of age and loose threads hinted that these clothes, and the man himself, had seen better days."
      },
      {
        "character": "A character who is attractive and devious.",
        "target": "Stepping out of the alley a little too quickly, I collided with something solidly muscular and surprisingly delicately scented. \"Sorry.\" I managed, regaining my balance. \"Easy there, buddy, you're gonna hurt yourself,\" came the reply from a man with an almost feline grace, further reinforced by a stare that reminded me of a hunting cat assessing its potential prey."
      },
      {
        "character": "A character who is old and hesitant.",
        "target": "\"Excuse me. Do you know the way to the train station from here?\" I looked up from my phone to see a elderly woman in a threadbare coat, purse clutched with two hands in front of her. \"I-I'm supposed to meet my nephew there. Do... do you think you can help me?\""
      },
      {
        "character": "A character who is intelligent and aloof.",
        "target": "Bookish. That was my immediate reaction to this person I now saw in front of me. \"You're finally here. Did you read the notes I sent you?\" The voice sat squarely in between feminine and masculine intonation. \"No, of course you didn't.\" Dismissing my answer before I'd even formulated one. Annoyance immediately flushed through me."
      },
      {
        "character": "A character who is clumsy and energetic.",
        "target": "\"Whoa!\" was the only warning I had before someone slammed into my back, almost knocking me off my feet. \"I'm so sorry! WOOO! These skates are a RUSH!\" The apology came from a rather loud redhead wearing rollerblades, dark glasses and a very beefy-looking pair of headphones. That explained the volume of the apology."
      }
    ]
  3. บันทึกการเปลี่ยนแปลงลงในไฟล์ new_character.json

หลังจากสร้างตัวอย่างแล้ว ให้แก้ไข app/context/schema.ts และ index.ts เพื่อแสดงเนื้อหาพรอมต์ของ การควบคุมอักขระใหม่นี้

วิธีเพิ่มตัวอย่างลงในไฟล์ schema.ts

  • แก้ไขไฟล์ wordcraft/app/context/schema.ts เพื่อรวม โครงสร้างข้อมูลตัวอย่างอักขระ
    export const newStorySchema = z.object({
      topic: z.string(),
      target: z.string(),
    });
    
    // add the following:
    export const newCharacterSchema = z.object({
      character: z.string(),
      target: z.string(),
    });

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

วิธีสร้างประเภทการดำเนินการใหม่

  • แก้ไขไฟล์ wordcraft/app/core/shared/types.ts เพื่อเพิ่ม ประเภทการดำเนินการของอักขระ
    export const enum OperationType {
      ...
      NEW_CHARACTER = 'NEW_CHARACTER', // add to list of types
      ...
    }

วิธีลงทะเบียนตัวอย่างในไฟล์ index.ts

  1. ในไฟล์ wordcraft/app/context/index.ts ให้นำเข้าสคีมาใหม่
    import {
      continueSchema,
      ...
      newCharacterSchema // add new schema
    } from './schema';
    
  2. นำเข้าไฟล์ JSON ใหม่เป็น newCharacterJson
    import newCharacterJson from './json/new_character.json';
    
  3. ลงทะเบียนเนื้อหาตัวอย่างตัวละครใหม่ในบริบทของแอปพลิเคชัน
    export class WordcraftContext {
      constructor() {
      ...
        this.registerExamples(
          OperationType.NEW_CHARACTER,
          newCharacterSchema,
          newCharacterJson
        );
      ...
    }
  4. ส่งออกประเภท NewCharacterExample
    export type NewCharacterExample = z.infer<typeof newCharacterSchema>;
    

อินเทอร์เฟซผู้ใช้ของบิลด์

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

วิธีสร้างการดำเนินการใหม่

  1. ในไดเรกทอรี wordcraft/app/core/operations/ ให้สร้าง คลาสการดำเนินการใหม่โดยใช้คลาสการดำเนินการที่มีอยู่เป็นคลาสการดำเนินการ เทมเพลต สำหรับการควบคุมอักขระใหม่ คุณสามารถทำสำเนาของ new_story_operation.ts ชั้นเรียนและเปลี่ยนชื่อเป็น new_character_operation.ts
  2. ตั้งชื่อใหม่ให้คลาส และระบุเวลาที่ตัวควบคุมจะปรากฏใน อินเทอร์เฟซผู้ใช้โดยการกำหนดค่า OperationSite อย่างน้อย 1 ค่า
    export class NewCharacterOperation extends ChoiceOperation {
      static override isAvailable(operationSite: OperationSite) {
        return (
          operationSite === OperationSite.END_OF_SECTION ||
          operationSite === OperationSite.EMPTY_SECTION
        );
      }
    
  3. ตั้งค่า id สำหรับการดำเนินการ
      static override id = OperationType.NEW_CHARACTER;
    
  4. อัปเดตฟังก์ชัน get และ run เพื่อแสดงฟังก์ชัน ของพารามิเตอร์สคีมา โค้ดนี้จะจัดการการรับข้อความแจ้ง จากอินเทอร์เฟซผู้ใช้เพื่อใช้ใน AI Prompt
      private get character(): string {
        return NewCharacterOperation.controls.character.value;
      }
    
      async run() {
        const params = { character: this.character };
        const choices = await this.getModel().newCharacter(params);
    
        this.setChoices(choices);
      }
    
  5. อัปเดตข้อความและคำอธิบายอินเทอร์เฟซผู้ใช้
      static override getButtonLabel() {
        return 'introduce character';
      }
    
      static override getDescription() {
        return 'Introduce a new character at the cursor.';
      }
    
      static override controls = {
        character: new TextareaControl({
          prefix: 'prompt',
          description: 'A prompt to introduce a new character.',
          value: 'A new character.',
        }),
      };
    

วิธีลงทะเบียนการดำเนินการใหม่ในแอปพลิเคชัน Wordcraft

  1. ในไฟล์ wordcraft/app/core/operations/index.ts ให้เพิ่ม สำหรับการดำเนินการใหม่
    import {NewCharacterOperation} from './new_character_operation';
    
  2. ในไฟล์ index.ts เดียวกัน ให้เพิ่มการส่งออกสำหรับ ชั้นเรียนNewCharacterOperation
    export {
      ...
      NewCharacterOperation, // add this class
      ...
    };
  3. ในไฟล์ wordcraft/app/main.ts ให้ลงทะเบียน การดำเนินการ
    const operationsService = wordcraftCore.getService(OperationsService);
    operationsService.registerOperations(
      ...
      Operations.NewCharacterOperation, // add new operation
      ...
    );
    

สร้างการจัดการพรอมต์

ในขั้นตอนสุดท้ายของการสร้างการควบคุมใหม่ คุณจะได้สร้างโค้ดที่ จัดการการสร้างพรอมต์สำหรับโมเดล Generative AI และจัดการคำตอบ โดยมีขั้นตอนหลักๆ คือสร้างเครื่องจัดการข้อความแจ้งใน ไดเรกทอรี wordcraft/app/models/gemini/prompts/ ที่รับข้อมูลจากผู้ใช้ และรวบรวมพรอมต์ที่จะส่งไปยังโมเดล Generative

วิธีกำหนดอินเทอร์เฟซสำหรับพารามิเตอร์ข้อความแจ้ง

  • ในไฟล์ wordcraft/app/core/shared/interfaces.ts ให้เพิ่ม สำหรับพารามิเตอร์การแจ้งให้ดำเนินการใหม่
    export interface NewCharacterPromptParams {
      character: string;
    }
    

หากต้องการกำหนดตัวแฮนเดิลข้อความแจ้งสำหรับการดำเนินการใหม่ ให้ทำดังนี้

  1. ในไดเรกทอรี wordcraft/app/models/gemini/prompts/ ให้สร้าง คลาสตัวแฮนเดิลข้อความแจ้งใหม่โดยใช้คลาสการดำเนินการที่มีอยู่เป็นคลาสการดำเนินการ เทมเพลต สำหรับการควบคุมอักขระใหม่ คุณสามารถทำสำเนาของ new_story.ts ชั้นเรียนและเปลี่ยนชื่อเป็น new_character.ts เป็นจุดเริ่มต้น
  2. กำหนดฟังก์ชันตัวแฮนเดิลข้อความแจ้งและนำเข้าฟังก์ชัน NewCharacterExample ชั้นเรียน
    import { NewCharacterPromptParams } from '@core/shared/interfaces';
    import { NewCharacterExample, WordcraftContext } from '../../../context';
    import { OperationType } from '@core/shared/types';
    import { GeminiModel } from '..';
    
    export function makePromptHandler(model: GeminiModel, context: WordcraftContext) {
      ...
    }
    
  3. สร้างฟังก์ชัน generatePrompt() เพื่อรับอินพุตของอินเทอร์เฟซผู้ใช้สำหรับ พรอมต์โมเดล AI
      function generatePrompt(character: string) {
        const prefix = "Here's a character description: ";
        const suffix = "Introduce this character in the story.";
    
        if (character.trim() === '') {
          return 'Introduce a new character to the story.';
        } else {
          return `${prefix}${model.wrap(character)}\n${suffix}`;
        }
      }
  4. สร้างฟังก์ชัน getPromptContext() เพื่อประกอบผู้ใช้ ของอินเทอร์เฟซ พร้อมตัวอย่างการตอบกลับและสร้างพรอมต์ที่สมบูรณ์
      function getPromptContext() {
        const examples = context.getExampleData(
          OperationType.NEW_CHARACTER
        );
        let promptContext = model.getPromptPreamble();
        examples.forEach((example) => {
          const { character, target } = example;
          const prompt = generatePrompt(character);
          promptContext += `${prompt} ${model.wrap(target)}\n\n`;
        });
        return promptContext;
      }

หากต้องการผสานรวมตัวแฮนเดิลข้อความแจ้งอักขระใหม่ ให้ทำดังนี้

  1. ในไฟล์ wordcraft/app/models/gemini/index.ts ให้นำเข้าส่วน เครื่องจัดการข้อความแจ้งสำหรับการดำเนินการอักขระใหม่
    import {makePromptHandler as newCharacter} from './prompts/new_character';
  2. เพิ่มคำจำกัดความการลบล้างสำหรับพรอมต์ newCharacter เครื่องจัดการ
      override newCharacter = this.makePromptHandler(newCharacter);

วิธีบันทึกพารามิเตอร์พรอมต์กับการกำหนดโมเดล

  1. ในไฟล์ wordcraft/app/models/model.ts ให้เพิ่มการนำเข้าสำหรับ อินเทอร์เฟซใหม่ของ NewCharacterPromptParams
    import {
      ...
      NewCharacterPromptParams,
      ...
    } from '@core/shared/interfaces';
  2. เพิ่มพารามิเตอร์ข้อความแจ้ง newCharacter ลงในคลาสโมเดล
      async newCharacter(params: NewCharacterPromptParams): Promise<ModelResults> {
        throw new Error('Not yet implemented');
      }

ทดสอบการควบคุมการเขียนใหม่

ตัวควบคุมใหม่ควรพร้อมสำหรับการทดสอบในอินเทอร์เฟซ Wordcraft ตรวจสอบว่า เพื่อตรวจสอบโค้ดเพื่อหาข้อผิดพลาดการคอมไพล์ก่อนดำเนินการต่อ

วิธีทดสอบการควบคุมอักขระใหม่

  1. ไปที่ไดเรกทอรีรูทของโปรเจ็กต์ Wordcraft
    cd wordcraft/
    
  2. เรียกใช้โปรเจ็กต์ในโหมดการพัฒนา:
    npm run dev
    
  3. ไปที่อินเทอร์เฟซผู้ใช้ Wordcraft ในเว็บเบราว์เซอร์ อีเมลที่ระบุจะแสดงในเอาต์พุตของคำสั่งก่อนหน้า เช่น
    http://localhost:3000/
    
  4. ในแอปพลิเคชัน Wordcraft ให้สร้างเรื่องราวใหม่หรือเปิดเรื่องราวที่มีอยู่
  5. ในพื้นที่แก้ไขเรื่องราว ให้เลื่อนเคอร์เซอร์ไปที่จุดสิ้นสุดของเรื่องราว ใน แท็บการควบคุมทางด้านขวา ตัวควบคุมแนะนำอักขระควร ปรากฏขึ้น
  6. ในช่องแนะนำอักขระ ให้พิมพ์คำอธิบายสั้นๆ ของ ตัวละครใหม่ จากนั้นเลือกปุ่มแนะนำตัวละคร

แหล่งข้อมูลเพิ่มเติม

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

แอปพลิเคชันเวอร์ชันที่ใช้งานจริง

หากคุณมีแผนที่จะใช้ Wordcraft เวอร์ชันที่กำหนดเองกับกลุ่มเป้าหมายขนาดใหญ่ โปรดทราบว่าการใช้งาน Google Gemini API ของคุณอาจมีการจำกัดอัตราคำขอ อื่นๆ ข้อจำกัดการใช้งาน หากคุณกำลังคิดจะสร้างแอปพลิเคชันเวอร์ชันที่ใช้งานจริงด้วย Gemini API เช่น ตัวแทนเอกสาร ชำระเงิน Vertex AI ของ Google Cloud เพื่อเพิ่มความสามารถในการปรับขนาดและความเสถียรของแอป