จากต้นแบบไปจนถึงตัวแทนด้วย ADK

1. ภาพรวม

การสร้างด้วย AI เริ่มต้นจากที่ใดได้บ้างในวันนี้ สำหรับพวกเราส่วนใหญ่แล้ว มักจะเริ่มต้นด้วยคำถามง่ายๆ ว่า "โมเดลช่วยแก้ปัญหาที่ฉันคิดมาตลอดได้ไหม" Google AI Studio ช่วยคุณได้ เป็นพื้นที่ที่คุณสามารถสร้างต้นแบบได้อย่างรวดเร็ว ฉันอยากปรับปรุงห้องครัว และคิดว่า Gemini น่าจะช่วยได้ แต่ฉันเป็นวิศวกร ไม่ใช่ผู้รับเหมาทั่วไป ฉันไม่แน่ใจด้วยซ้ำว่าจะขออะไรดี เพราะมีหลายอย่างที่ต้องพิจารณา เช่น กฎระเบียบ อุปกรณ์ติดตั้ง ฯลฯ ดังนั้นเรามาแบ่งเรื่องนี้ออกเป็นส่วนๆ แล้วให้ Gemini สร้างพรอมต์ที่มีรายละเอียดครบถ้วนให้เรา จากนั้นสร้างแผนการปรับปรุงทั้งหมดและแสดงภาพการปรับปรุงด้วย แต่เดี๋ยวก่อน ฉันจะช่วยให้ธุรกิจขยายขนาดจากจุดนี้ได้อย่างไร ป้อน AGENTS!!!

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

ชุดพัฒนาเอเจนต์ (ADK)

Agent Development Kit (ADK) เป็นเฟรมเวิร์กที่ยืดหยุ่นและเป็นโมดูลสำหรับการพัฒนาและติดตั้งใช้งานเอเจนต์ AI ADK รองรับการสร้างแอปพลิเคชันที่ซับซ้อนโดยการรวมอินสแตนซ์ของเอเจนต์ที่แตกต่างกันหลายรายการเข้าเป็นระบบแบบหลายเอเจนต์ (MAS)

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

สิ่งที่คุณจะสร้าง

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

  1. สร้าง Agent แบบง่ายเพื่อสร้างเอกสารข้อเสนอการปรับปรุงด้วย ADK
  2. จัดเก็บเอกสารข้อเสนอการปรับปรุงที่สร้างขึ้นในที่เก็บข้อมูล Cloud Storage
  3. ทดสอบเอเจนต์ใน Cloud Shell และในเอาต์พุตเว็บของเอเจนต์

ข้อกำหนด

  • เบราว์เซอร์ เช่น Chrome หรือ Firefox
  • โปรเจ็กต์ Google Cloud ที่เปิดใช้การเรียกเก็บเงิน

2. ก่อนเริ่มต้น

สร้างโปรเจ็กต์

  1. ในคอนโซล Google Cloud ให้เลือกหรือสร้างโปรเจ็กต์ Google Cloud ในหน้าตัวเลือกโปรเจ็กต์
  2. ตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินสำหรับโปรเจ็กต์ Cloud แล้ว ดูวิธีตรวจสอบว่าได้เปิดใช้การเรียกเก็บเงินในโปรเจ็กต์แล้วหรือไม่
  3. นอกจากนี้ หากคุณกำลังอ่านข้อความนี้และต้องการรับเครดิตเพื่อช่วยให้คุณเริ่มต้นใช้งาน Google Cloud และใช้ ADK ได้ โปรดใช้ลิงก์นี้เพื่อแลกรับเครดิต
  4. คุณทำตามวิธีการที่นี่ เพื่อแลกรับได้ โปรดทราบว่าลิงก์นี้จะใช้ได้จนถึงวันที่ 15 กรกฎาคม 2025 เท่านั้นสำหรับการแลกรับข้อเสนอ
  5. เปิดใช้งาน Cloud Shell โดยคลิกลิงก์นี้ คุณสลับระหว่างเทอร์มินัล Cloud Shell (สำหรับเรียกใช้คำสั่งคลาวด์) กับเอดิเตอร์ (สำหรับสร้างโปรเจ็กต์) ได้โดยคลิกปุ่มที่เกี่ยวข้องจาก Cloud Shell
  6. เมื่อเชื่อมต่อกับ Cloud Shell แล้ว ให้ตรวจสอบว่าคุณได้รับการตรวจสอบสิทธิ์แล้วและตั้งค่าโปรเจ็กต์เป็นรหัสโปรเจ็กต์โดยใช้คำสั่งต่อไปนี้
gcloud auth list
  1. เรียกใช้คำสั่งต่อไปนี้ใน Cloud Shell เพื่อยืนยันว่าคำสั่ง gcloud รู้จักโปรเจ็กต์ของคุณ
gcloud config list project
  1. หากไม่ได้ตั้งค่าโปรเจ็กต์ ให้ใช้คำสั่งต่อไปนี้เพื่อตั้งค่า
gcloud config set project <YOUR_PROJECT_ID>
  1. ตรวจสอบว่าคุณมี Python 3.9 ขึ้นไป

ดูคำสั่งและการใช้งาน gcloud อื่นๆ ในเอกสารประกอบ

3. ต้นแบบ

ไปที่ Google AI Studio เริ่มพิมพ์พรอมต์ พรอมต์ที่ฉันใช้มีดังนี้

I want to renovate my kitchen, basically just remodel it. I don't know where to start. So I want to use Gemini to generate a plan. For that I need a good prompt. Give me a short yet detailed prompt that I can use.

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

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

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

ดูข้อมูลโค้ดของคำตอบด้านล่าง

4e4361663df80964.png

AI Studio วิเคราะห์ข้อมูลของฉันและสร้างสิ่งต่างๆ เหล่านี้ เช่น ตู้ เคาน์เตอร์ แบ็กสแปลช พื้น อ่างล้างหน้า ความสอดคล้อง ชุดสี และการเลือกวัสดุ Gemini ยังอ้างอิงแหล่งที่มาด้วย

ตอนนี้ลองดูว่าไอเดียจะกลายเป็นจริงได้อย่างไรด้วยพรอมต์อื่น

  1. คัดลอกพรอมต์นี้แล้ววางลงในโปรแกรมแก้ไขพรอมต์
Add flat and circular light accessories above the island area for my current kitchen in the attached image.
  1. แนบรูปภาพห้องครัวปัจจุบัน (หรือคุณจะใช้รูปภาพห้องครัวตัวอย่างของฉันก็ได้)
  2. เปลี่ยนโมเดลเป็น "การสร้างรูปภาพตัวอย่าง Gemini 2.0 Flash" เพื่อให้คุณมีสิทธิ์สร้างรูปภาพ

ฉันได้รับเอาต์พุตนี้

fb33e7b1f6560a0c.png

นี่คือศักยภาพของ Gemini

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

จาก AI Studio คุณสามารถนำต้นแบบนี้ไปใช้ รับคีย์ API และขยายขนาดให้เป็นแอปพลิเคชันแบบเอเจนต์เต็มรูปแบบได้โดยใช้ความสามารถของ Vertex AI ADK

4. การตั้งค่า ADK

ตอนนี้เราจะไปที่เทอร์มินัล Cloud Shell ที่เราเปิดใช้งานในส่วน "ก่อนเริ่มต้น"

  1. สร้างและเปิดใช้งานสภาพแวดล้อมเสมือน (แนะนำ)

สร้างสภาพแวดล้อมเสมือนจากเทอร์มินัล Cloud Shell โดยใช้คำสั่งต่อไปนี้

python -m venv .venv

เปิดใช้งานสภาพแวดล้อมเสมือน

source .venv/bin/activate
  1. ติดตั้ง ADK
pip install google-adk

5. โครงสร้างโปรเจ็กต์

  1. จากเทอร์มินัล Cloud Shell ให้สร้างไดเรกทอรีรากสำหรับแอปที่ใช้เอเจนต์ในตำแหน่งโปรเจ็กต์ที่ต้องการ
mkdir agentic-apps
  1. สร้างโฟลเดอร์สำหรับโปรเจ็กต์ปัจจุบันของเราโดยเฉพาะภายในไดเรกทอรีหลัก
mkdir renovation-agent
  1. ไปที่เครื่องมือแก้ไข Cloud Shell แล้วสร้างโครงสร้างโปรเจ็กต์ต่อไปนี้โดยสร้างไฟล์ (ว่างเปล่าในตอนแรก)
renovation-agent/
        __init__.py
        agent.py
        requirements.txt
        .env

6. ซอร์สโค้ด

  1. ไปที่ "init.py" แล้วอัปเดตด้วยเนื้อหาต่อไปนี้
from . import agent
  1. ไปที่ agent.py แล้วอัปเดตไฟล์ด้วยเนื้อหาต่อไปนี้จากเส้นทางต่อไปนี้

ใน agent.py เราจะนำเข้าทรัพยากร Dependency ที่จำเป็น ดึงพารามิเตอร์การกำหนดค่าจากไฟล์ .env และกำหนด root_agent ซึ่งจะสร้างเอกสารข้อเสนอและจัดเก็บไว้ในที่เก็บข้อมูล Cloud Storage เราใช้เครื่องมือที่ชื่อ store_pdf เพื่อทำขั้นตอน Cloud Storage

หมายเหตุ: ขณะนี้ PDF ยังไม่มีการจัดรูปแบบ อิงตาม PR ของนักพัฒนาชุมชน เราได้รวมข้อมูลโค้ดต่อไปนี้ไว้ที่นี่ [ยังไม่ได้ทดสอบ] คุณสามารถปรับโค้ดนี้ภายในเมธอด store_pdf ได้

doc = SimpleDocTemplate(
        pdf_buffer,
        pagesize=letter,
        rightMargin=0.75 * inch,
        leftMargin=0.75 * inch,
        topMargin=0.75 * inch,
        bottomMargin=0.75 * inch
    )

    styles = getSampleStyleSheet()
    story = []

    # --- CUSTOM STYLES FOR HEADERS ---
    # Define a new style for section headers
    styles.add(ParagraphStyle(name='SectionHeader',
                              parent=styles['Normal'],
                              fontName='Helvetica-Bold', # Make it bolder
                              fontSize=14,               # Make it slightly larger
                              leading=16,                # Line spacing
                              spaceAfter=0.15 * inch,    # Space after the header
                              spaceBefore=0.25 * inch,   # Space before the header
                              textColor=black            # Ensure color is bright/black (default is usually black, but explicit is good)
                             ))

    # Define a style for the main document title
    styles.add(ParagraphStyle(name='DocumentTitle',
                              parent=styles['Normal'],
                              fontName='Helvetica-Bold',
                              fontSize=20,
                              leading=24,
                              spaceAfter=0.25 * inch,
                              alignment=TA_CENTER, # Center align the title
                              textColor=black
                             ))
    # ---------------------------------

    paragraphs_raw = pdf_text.split('\n\n')

    # Heuristic for the garbled line issue (as before, temporary)
    if paragraphs_raw and len(paragraphs_raw[-1]) < 50 and any(char in paragraphs_raw[-1] for char in ['io', 'og', 'al', 'op']):
         logger.warning("Detected potentially garbled last paragraph. Attempting to trim/omit.")
         paragraphs_raw[-1] = "11. Entire Agreement:\nThis proposal constitutes the entire agreement between the parties and supersedes all prior discussions and agreements."


    for i, para_text in enumerate(paragraphs_raw):
        para_text = para_text.strip()
        if not para_text:
            continue

        # Special handling for the main document title (PROPOSAL DOCUMENT)
        if i == 0 and "PROPOSAL DOCUMENT" in para_text.upper():
            p = Paragraph("PROPOSAL DOCUMENT", styles['DocumentTitle'])
            story.append(p)
            story.append(Spacer(1, 0.15 * inch)) # Add space after the title
            # Skip the rest of this initial block if it's just the title
            remaining_text_lines = para_text.splitlines()[1:]
            if remaining_text_lines:
                formatted_text = "<br/>".join(remaining_text_lines)
                p = Paragraph(formatted_text, styles['Normal'])
                story.append(p)
                story.append(Spacer(1, 0.1 * inch))
            continue # Move to the next paragraph

        # Check if the paragraph looks like a section header (e.g., starts with a number and dot or just bold text)
        # This is a heuristic and might need fine-tuning based on actual proposal content variability.
        is_section_header = False
        # Check for numbered sections (e.g., "1. Scope of Work:")
        if para_text.startswith(('1.', '2.', '3.', '4.', '5.', '6.', '7.', '8.', '9.', '10.', '11.')):
            is_section_header = True
        # Check for Exhibit headers (e.g., "Exhibit A: Cabinet Design") or Roman numeral headings
        elif para_text.startswith(('Exhibit ', 'I.', 'II.', 'III.', 'IV.', 'V.', 'VI.', 'VII.')):
            is_section_header = True
        # Check for specific known headers
        elif para_text.strip().upper() in ["IN WITNESS WHEREOF,", "EXHIBITS:"]:
            is_section_header = True


        if is_section_header:
            p = Paragraph(para_text, styles['SectionHeader'])
            story.append(p)
            # No additional Spacer here, as SectionHeader style has spaceAfter
        else:
            formatted_text = para_text.replace('\n', '<br/>')
            p = Paragraph(formatted_text, styles['Normal'])
            story.append(p)
            story.append(Spacer(1, 0.1 * inch)) # Standard space after body paragraphs

    doc.build(story)

    pdf_buffer.seek(0)

    # Upload the PDF to GCS
    storage_client = storage.Client()
    bucket = storage_client.bucket(STORAGE_BUCKET)
    blob = bucket.blob(PROPOSAL_DOCUMENT_FILE_NAME)

    blob.upload_from_file(pdf_buffer, content_type="application/pdf")

    logger.info(f"Successfully uploaded PDF to gs://{STORAGE_BUCKET}/{PROPOSAL_DOCUMENT_FILE_NAME}")

except Exception as e:
    logger.error(f"Error writing text to PDF and uploading: {e}")
    raise
finally:
    if 'pdf_buffer' in locals():
        pdf_buffer.close()
return "Successfully uploaded PDF to GCS!!"
  1. ตรวจสอบว่าคุณมีที่เก็บข้อมูล Cloud Storage

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

https://cloud.google.com/storage/docs/creating-buckets#console

ตั้งชื่อที่เก็บข้อมูลว่า "next-demo-store" หากตั้งชื่อเป็นอย่างอื่น อย่าลืมอัปเดตค่าของ STORAGE_BUCKET ในไฟล์ .env (ในขั้นตอนการตั้งค่าตัวแปร ENV)

  1. หากต้องการตั้งค่าการเข้าถึงที่เก็บข้อมูล ให้ไปที่คอนโซลของ Cloud Storage และไปที่ที่เก็บข้อมูล (ในกรณีนี้ ชื่อที่เก็บข้อมูลคือ "next-demo-storage": https://console.cloud.google.com/storage/browser/next-demo-storage

ไปที่สิทธิ์ -> ดูผู้ใช้หลัก -> ให้สิทธิ์เข้าถึง เลือก Principal เป็น "allUsers" และบทบาทเป็น "ผู้ใช้ที่เข้าถึงออบเจ็กต์พื้นที่เก็บข้อมูล"

Make sure to not enable "prevent public access". Since this is a demo/study application we are going with a public bucket. Remember to configure permission settings appropriately when you are building your application.
  1. สร้างรายการทรัพยากรที่ต้องใช้

แสดงรายการทรัพยากร Dependency ทั้งหมดใน requirements.txt คุณคัดลอกข้อมูลนี้ได้จาก repo

คำอธิบายซอร์สโค้ดของระบบที่มีเอเจนต์เดียว

ไฟล์ agent.py จะกำหนดโครงสร้างและลักษณะการทำงานของระบบแบบหลายเอเจนต์สำหรับการปรับปรุงห้องครัวโดยใช้ Agent Development Kit (ADK) มาดูองค์ประกอบหลักๆ กัน

คำจำกัดความของเอเจนต์

Root Agent (Orchestrator): proposal_agent

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

จากนั้น root_agent จะรวบรวมคำตอบจากเครื่องมือและรวมเข้าด้วยกันเพื่อให้คำตอบที่ครอบคลุมแก่ผู้ใช้ ในกรณีนี้ เรามีเครื่องมือเพียงอย่างเดียวคือ "store_pdf"

7. การไหลเวียนของข้อมูลและแนวคิดหลัก

ผู้ใช้เริ่มคำขอผ่านอินเทอร์เฟซ ADK (ทั้งเทอร์มินัลหรือ UI บนเว็บ)

  1. root_agent ได้รับคำขอ
  2. root_agent จะวิเคราะห์คำขอและกำหนดเส้นทางไปยังเครื่องมือตามที่จำเป็น
  3. เครื่องมือ "store_pdf" ออกแบบมาเพื่อเขียนเนื้อหาข้อความที่ปรับปรุงใหม่ลงในไฟล์ PDF แล้วอัปโหลดไปยัง Google Cloud Storage
  4. จากนั้นจะส่งคำตอบกลับไปยัง root_agent
  5. root_agent จะรวมคำตอบและแสดงเอาต์พุตสุดท้ายต่อผู้ใช้

LLM (โมเดลภาษาขนาดใหญ่)

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

Google Cloud Storage

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

Cloud Run (ไม่บังคับ)

OrderingAgent ใช้ฟังก์ชัน Cloud Run เพื่อเชื่อมต่อกับ AlloyDB Cloud Run มีสภาพแวดล้อมแบบ Serverless สำหรับเรียกใช้โค้ดเพื่อตอบสนองต่อคำขอ HTTP

AlloyDB

หากใช้ OrderingAgent คุณจะต้องตั้งค่าฐานข้อมูล AlloyDB เพื่อจัดเก็บข้อมูลคำสั่งซื้อ

ไฟล์.env

ไฟล์ .env จะจัดเก็บข้อมูลที่ละเอียดอ่อน เช่น คีย์ API, ข้อมูลเข้าสู่ระบบฐานข้อมูล และชื่อที่เก็บข้อมูล คุณต้องเก็บไฟล์นี้ไว้อย่างปลอดภัยและไม่ส่งไปยังที่เก็บ นอกจากนี้ยังจัดเก็บการตั้งค่าการกำหนดค่าสำหรับเอเจนต์และโปรเจ็กต์ Google Cloud ด้วย โดยปกติแล้ว ฟังก์ชัน root_agent หรือฟังก์ชันสนับสนุนจะอ่านค่าจากไฟล์นี้ ตรวจสอบว่าได้ตั้งค่าตัวแปรที่จำเป็นทั้งหมดอย่างถูกต้องในไฟล์ .env ซึ่งรวมถึงชื่อที่เก็บข้อมูล Cloud Storage

8. การตั้งค่าโมเดล

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

  1. รับคีย์ API จาก Google AI Studio
  2. ในขั้นตอนถัดไปที่คุณตั้งค่าไฟล์ .env ให้แทนที่ <<your API KEY>> ด้วยค่าคีย์ API จริง

9. การตั้งค่าตัวแปร ENV

  1. ตั้งค่าสำหรับพารามิเตอร์ในไฟล์ .env ของเทมเพลตในที่เก็บนี้ ในกรณีของฉัน ไฟล์ .env มีตัวแปรต่อไปนี้
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY=<<your API KEY>>
GOOGLE_CLOUD_LOCATION = us-central1 <<or your region>>
GOOGLE_CLOUD_PROJECT = <<your project id>>
PROJECT_ID = <<your project id>>
GOOGLE_CLOUD_REGION=us-central1 <<or your region>>
STORAGE_BUCKET = next-demo-store <<or your storage bucket name>>

แทนที่ตัวยึดตำแหน่งด้วยค่าของคุณ

10. เรียกใช้ Agent

  1. ใช้เทอร์มินัลเพื่อไปยังไดเรกทอรีหลักของโปรเจ็กต์ตัวแทน
cd agentic-apps/renovation-agent
  1. ติดตั้งการอ้างอิงทั้งหมด
pip install -r requirements.txt
  1. คุณเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล Cloud Shell เพื่อเรียกใช้ Agent ได้
adk run .
  1. คุณเรียกใช้คำสั่งต่อไปนี้เพื่อเรียกใช้ในเว็บ UI ที่จัดสรร ADK ได้

หมายเหตุ: คุณต้องเรียกใช้คำสั่งนี้จากภายนอกโฟลเดอร์โปรเจ็กต์ของเอเจนต์ โดยออกจากโฟลเดอร์ดังกล่าว 1 ขั้นตอน แล้วจึงเรียกใช้คำสั่ง

adk web
  1. ทดสอบด้วยพรอมต์ต่อไปนี้
user>> 

Hello. Generate Proposal Document for the kitchen remodel requirement in a proper format that applies to a renovation contract. Remember this text will eventually be stored as a pdf file so make sure to have the formatting appropriate. I have no other specification.

11. ผลลัพธ์

สำหรับคำสั่ง adk run . ผลลัพธ์มีดังนี้"

2703603a907329ae.png

ae56b38cc6da9afe.png

...

91452a4de933a75b.png

คุณสามารถตรวจสอบว่าระบบสร้างเอกสารข้อเสนอการปรับปรุงในที่เก็บข้อมูล Cloud Storage แล้วหรือไม่

12. ทำให้ใช้งานได้กับ Cloud Run

  1. สร้างไฟล์ชื่อ Dockerfile ภายในโฟลเดอร์รูทของโปรเจ็กต์
cd agentic-apps/renovation-agent
  1. คัดลอกเนื้อหาจากที่เก็บ GitHub
https://github.com/AbiramiSukumaran/adk-renovation-single-agent/blob/main/Dockerfile

ลงในไฟล์ Dockerfile นี้

  1. ทำให้ใช้งานได้ใน Cloud Run โดยใช้คำสั่งต่อไปนี้
adk deploy cloud_run --project=abis-345004 --region=us-central1 --service_name=renovation-agent --app_name=renovation-app --with_ui .

เท่านี้เอง เมื่อติดตั้งใช้งานแล้ว คุณควรเห็นปลายทางในเทอร์มินัลซึ่งพร้อมให้คุณใช้งาน

13. ล้างข้อมูล

โปรดทำตามขั้นตอนต่อไปนี้เพื่อเลี่ยงไม่ให้เกิดการเรียกเก็บเงินกับบัญชี Google Cloud สำหรับทรัพยากรที่ใช้ในโพสต์นี้

  1. ใน Google Cloud Console ให้ไปที่หน้าจัดการทรัพยากร
  2. ในรายการโปรเจ็กต์ ให้เลือกโปรเจ็กต์ที่ต้องการลบ แล้วคลิกลบ
  3. ในกล่องโต้ตอบ ให้พิมพ์รหัสโปรเจ็กต์ แล้วคลิกปิดเพื่อลบโปรเจ็กต์

14. ขอแสดงความยินดี

ยินดีด้วย คุณได้สร้างและโต้ตอบกับแอปแบบหลายเอเจนต์โดยใช้ ADK เรียบร้อยแล้ว ระบบหลายเอเจนต์ได้รับการออกแบบมาเพื่อปรับปรุงกระบวนการปรับปรุงห้องครัวโดยการทำให้งานต่างๆ เป็นแบบอัตโนมัติ เช่น การสร้างข้อเสนอ การตรวจสอบใบอนุญาต และการติดตามสถานะคำสั่งซื้อ เอเจนต์แต่ละตัวมีบทบาทเฉพาะ และ root_agent จะประสานงานกิจกรรมของเอเจนต์เหล่านั้นเพื่อมอบโซลูชันที่ครอบคลุม ระบบใช้ประโยชน์จาก LLM, บริการของ Google Cloud และ API ภายนอก (หากมี) เพื่อมอบฟังก์ชันการทำงาน ที่นี่คือลิงก์ไปยังเอกสารประกอบของผลิตภัณฑ์