README_th-TH.md
October 16, 2025 · View on GitHub
Bedrock Chat (BrChat)
English | 日本語 | 한국어 | 中文 | Français | Deutsch | Español | Italian | Norsk | ไทย | Bahasa Indonesia | Bahasa Melayu | Tiếng Việt | Polski | Português Brasil
แพลตฟอร์ม AI สร้างเนื้อหาหลายภาษาที่ขับเคลื่อนโดย Amazon Bedrock รองรับการแชท บอทที่กำหนดเองพร้อมความรู้ (RAG) การแบ่งปันบอทผ่านร้านค้าบอท และการทำงานอัตโนมัติโดยใช้เอเจนต์

Warning
เวอร์ชัน V3 ได้เปิดตัวแล้ว โปรดอ่าน คู่มือการย้าย อย่างละเอียดเพื่ออัปเดต หากไม่ระมัดระวัง บอทจากเวอร์ชัน V2 จะไม่สามารถใช้งานได้
การปรับแต่งบอท / ร้านค้าบอท
เพิ่มคำแนะนำและความรู้ของคุณเอง (หรือที่เรียกว่า RAG) บอทสามารถแบ่งปันระหว่างผู้ใช้แอปพลิเคชันผ่านตลาดร้านค้าบอท บอทที่ปรับแต่งแล้วยังสามารถเผยแพร่เป็น API แบบสแตนด์อโลนได้ (ดูรายละเอียด)
Important
เพื่อเหตุผลด้านการกำกับดูแล เฉพาะผู้ใช้ที่ได้รับอนุญาตเท่านั้นที่สามารถสร้างบอทที่กำหนดเองได้ เพื่อให้สามารถสร้างบอทที่กำหนดเองได้ ผู้ใช้ต้องเป็นสมาชิกของกลุ่มที่เรียกว่า CreatingBotAllowed ซึ่งสามารถตั้งค่าได้ผ่านคอนโซลการจัดการ > Amazon Cognito User pools หรือ aws cli โปรดทราบว่าสามารถอ้างอิง user pool id ได้โดยเข้าถึง CloudFormation > BedrockChatStack > Outputs > AuthUserPoolIdxxxx
คุณสมบัติการจัดการ
การจัดการ API การทำเครื่องหมายบอทว่าจำเป็น วิเคราะห์การใช้งานสำหรับบอท รายละเอียด
ภาพหน้าจอ
)
เอเจนต์
โดยใช้ฟังก์ชันเอเจนต์ แชทบอทของคุณสามารถจัดการงานที่ซับซ้อนได้โดยอัตโนมัติ ตัวอย่างเช่น เพื่อตอบคำถามของผู้ใช้ เอเจนต์สามารถดึงข้อมูลที่จำเป็นจากเครื่องมือภายนอกหรือแบ่งงานออกเป็นหลายขั้นตอนสำหรับการประมวลผล
ภาพหน้าจอ

🚀 การติดตั้งแบบง่ายมาก
- ในภูมิภาค us-east-1 เปิด Bedrock Model access >
Manage model access> เลือกโมเดลทั้งหมดที่คุณต้องการใช้แล้วกดSave changes
ภาพหน้าจอ

ภูมิภาคที่รองรับ
โปรดตรวจสอบให้แน่ใจว่าคุณติดตั้ง Bedrock Chat ในภูมิภาคที่มี OpenSearch Serverless และ Ingestion APIs พร้อมใช้งาน หากคุณต้องการใช้บอทและสร้างฐานความรู้ (OpenSearch Serverless เป็นตัวเลือกเริ่มต้น) ณ เดือนสิงหาคม 2025 รองรับภูมิภาคต่อไปนี้: us-east-1, us-east-2, us-west-1, us-west-2, ap-south-1, ap-northeast-1, ap-northeast-2, ap-southeast-1, ap-southeast-2, ca-central-1, eu-central-1, eu-west-1, eu-west-2, eu-south-2, eu-north-1, sa-east-1
สำหรับพารามิเตอร์ bedrock-region คุณต้องเลือกภูมิภาคที่มี Bedrock พร้อมใช้งาน
- เปิด CloudShell ในภูมิภาคที่คุณต้องการติดตั้ง
- รันการติดตั้งด้วยคำสั่งต่อไปนี้ หากคุณต้องการระบุเวอร์ชันที่จะติดตั้งหรือต้องการใช้นโยบายความปลอดภัย โปรดระบุพารามิเตอร์ที่เหมาะสมจาก พารามิเตอร์เสริม
git clone https://github.com/aws-samples/bedrock-chat.git
cd bedrock-chat
chmod +x bin.sh
./bin.sh
- คุณจะถูกถามว่าเป็นผู้ใช้ใหม่หรือใช้ v3 หากคุณไม่ใช่ผู้ใช้ต่อเนื่องจาก v0 โปรดป้อน
y
พารามิเตอร์เสริม
คุณสามารถระบุพารามิเตอร์ต่อไปนี้ระหว่างการติดตั้งเพื่อเพิ่มความปลอดภัยและการปรับแต่ง:
- --disable-self-register: ปิดการลงทะเบียนด้วยตนเอง (ค่าเริ่มต้น: เปิดใช้งาน) หากตั้งค่านี้ คุณจะต้องสร้างผู้ใช้ทั้งหมดบน cognito และจะไม่อนุญาตให้ผู้ใช้ลงทะเบียนบัญชีด้วยตนเอง
- --enable-lambda-snapstart: เปิดใช้งาน Lambda SnapStart (ค่าเริ่มต้น: ปิดใช้งาน) หากตั้งค่านี้ จะช่วยปรับปรุงเวลาเริ่มต้นเย็นของฟังก์ชัน Lambda ให้ตอบสนองได้เร็วขึ้นเพื่อประสบการณ์ผู้ใช้ที่ดีขึ้น
- --ipv4-ranges: รายการช่วง IPv4 ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค (ค่าเริ่มต้น: อนุญาตทุกที่อยู่ ipv4)
- --ipv6-ranges: รายการช่วง IPv6 ที่อนุญาต คั่นด้วยเครื่องหมายจุลภาค (ค่าเริ่มต้น: อนุญาตทุกที่อยู่ ipv6)
- --disable-ipv6: ปิดการเชื่อมต่อผ่าน IPv6 (ค่าเริ่มต้น: เปิดใช้งาน)
- --allowed-signup-email-domains: รายการโดเมนอีเมลที่อนุญาตสำหรับการลงทะเบียน คั่นด้วยเครื่องหมายจุลภาค (ค่าเริ่มต้น: ไม่จำกัดโดเมน)
- --bedrock-region: กำหนดภูมิภาคที่มี bedrock พร้อมใช้งาน (ค่าเริ่มต้น: us-east-1)
- --repo-url: ที่เก็บที่กำหนดเองของ Bedrock Chat ที่จะติดตั้ง หากมีการ fork หรือใช้การควบคุมซอร์สโค้ดที่กำหนดเอง (ค่าเริ่มต้น: https://github.com/aws-samples/bedrock-chat.git)
- --version: เวอร์ชันของ Bedrock Chat ที่จะติดตั้ง (ค่าเริ่มต้น: เวอร์ชันล่าสุดในการพัฒนา)
- --cdk-json-override: คุณสามารถแทนที่ค่าบริบท CDK ใดๆ ระหว่างการติดตั้งโดยใช้บล็อก JSON แทนที่ ซึ่งช่วยให้คุณแก้ไขการกำหนดค่าได้โดยไม่ต้องแก้ไขไฟล์ cdk.json โดยตรง
ตัวอย่างการใช้งาน:
./bin.sh --cdk-json-override '{
"context": {
"selfSignUpEnabled": false,
"enableLambdaSnapStart": true,
"allowedIpV4AddressRanges": ["192.168.1.0/24"],
"allowedCountries": ["US", "CA"],
"allowedSignUpEmailDomains": ["example.com"],
"globalAvailableModels": [
"claude-v3.7-sonnet",
"claude-v3.5-sonnet",
"amazon-nova-pro",
"amazon-nova-lite",
"llama3-3-70b-instruct"
]
}
}'
JSON ที่แทนที่ต้องเป็นไปตามโครงสร้างเดียวกับ cdk.json คุณสามารถแทนที่ค่าบริบทใดๆ รวมถึง:
selfSignUpEnabledenableLambdaSnapStartallowedIpV4AddressRangesallowedIpV6AddressRangesallowedCountriesallowedSignUpEmailDomainsbedrockRegionenableRagReplicasenableBedrockCrossRegionInferenceglobalAvailableModels: รับรายการ ID โมเดลที่จะเปิดใช้งาน ค่าเริ่มต้นคือรายการว่าง ซึ่งจะเปิดใช้งานโมเดลทั้งหมดlogoPath: เส้นทางสัมพัทธ์ไปยังไฟล์โลโก้ในไดเรกทอรีpublic/ของฟรอนต์เอนด์ที่ปรากฏที่ด้านบนของลิ้นชักนำทาง- และค่าบริบทอื่นๆ ที่กำหนดใน cdk.json
Note
ค่าที่แทนที่จะถูกรวมกับการกำหนดค่า cdk.json ที่มีอยู่ในระหว่างการติดตั้งใน AWS code build ค่าที่ระบุในการแทนที่จะมีความสำคัญเหนือกว่าค่าใน cdk.json
ตัวอย่างคำสั่งพร้อมพารามิเตอร์:
./bin.sh --disable-self-register --ipv4-ranges "192.0.2.0/25,192.0.2.128/25" --ipv6-ranges "2001:db8:1:2::/64,2001:db8:1:3::/64" --allowed-signup-email-domains "example.com,anotherexample.com" --bedrock-region "us-west-2" --version "v1.2.6"
- หลังจากประมาณ 35 นาที คุณจะได้รับผลลัพธ์ต่อไปนี้ ซึ่งคุณสามารถเข้าถึงได้จากเบราว์เซอร์ของคุณ
Frontend URL: https://xxxxxxxxx.cloudfront.net

หน้าจอลงทะเบียนจะปรากฏดังแสดงด้านบน ซึ่งคุณสามารถลงทะเบียนอีเมลและเข้าสู่ระบบได้
Important
หากไม่ตั้งค่าพารามิเตอร์เสริม วิธีการติดตั้งนี้จะอนุญาตให้ทุกคนที่รู้ URL สามารถลงทะเบียนได้ สำหรับการใช้งานในการผลิต แนะนำอย่างยิ่งให้เพิ่มข้อจำกัดที่อยู่ IP และปิดการลงทะเบียนด้วยตนเองเพื่อลดความเสี่ยงด้านความปลอดภัย (คุณสามารถกำหนด allowed-signup-email-domains เพื่อจำกัดผู้ใช้ให้เฉพาะที่อยู่อีเมลจากโดเมนของบริษัทคุณเท่านั้นที่สามารถลงทะเบียนได้) ใช้ทั้ง ipv4-ranges และ ipv6-ranges สำหรับข้อจำกัดที่อยู่ IP และปิดการลงทะเบียนด้วยตนเองโดยใช้ disable-self-register เมื่อรัน ./bin
Tip
หาก Frontend URL ไม่ปรากฏหรือ Bedrock Chat ทำงานไม่ถูกต้อง อาจเป็นปัญหาจากเวอร์ชันล่าสุด ในกรณีนี้ โปรดเพิ่ม --version "v3.0.0" ในพารามิเตอร์และลองติดตั้งอีกครั้ง
สถาปัตยกรรม
เป็นสถาปัตยกรรมที่สร้างขึ้นบนบริการที่จัดการโดย AWS ซึ่งช่วยขจัดความจำเป็นในการจัดการโครงสร้างพื้นฐาน ด้วยการใช้ Amazon Bedrock จึงไม่จำเป็นต้องติดต่อกับ API ภายนอก AWS ทำให้สามารถปรับใช้แอปพลิเคชันที่ขยายขนาดได้ เชื่อถือได้ และปลอดภัย
- Amazon DynamoDB: ฐานข้อมูล NoSQL สำหรับจัดเก็บประวัติการสนทนา
- Amazon API Gateway + AWS Lambda: จุดเชื่อมต่อ API แบ็กเอนด์ (AWS Lambda Web Adapter, FastAPI)
- Amazon CloudFront + S3: การส่งมอบแอปพลิเคชันฟรอนต์เอนด์ (React, Tailwind CSS)
- AWS WAF: การจำกัดที่อยู่ IP
- Amazon Cognito: การยืนยันตัวตนผู้ใช้
- Amazon Bedrock: บริการที่จัดการเพื่อใช้โมเดลพื้นฐานผ่าน API
- Amazon Bedrock Knowledge Bases: ให้บริการอินเตอร์เฟซที่จัดการสำหรับ Retrieval-Augmented Generation (RAG) โดยให้บริการสำหรับการฝังและแยกวิเคราะห์เอกสาร
- Amazon EventBridge Pipes: รับอีเวนต์จาก DynamoDB stream และเริ่มการทำงานของ Step Functions เพื่อฝังความรู้ภายนอก
- AWS Step Functions: จัดการไปป์ไลน์การนำเข้าเพื่อฝังความรู้ภายนอกลงใน Bedrock Knowledge Bases
- Amazon OpenSearch Serverless: ทำหน้าที่เป็นฐานข้อมูลแบ็กเอนด์สำหรับ Bedrock Knowledge Bases โดยให้ความสามารถในการค้นหาแบบเต็มรูปแบบและการค้นหาแบบเวกเตอร์ ช่วยให้สามารถค้นคืนข้อมูลที่เกี่ยวข้องได้อย่างแม่นยำ
- Amazon Athena: บริการสืบค้นเพื่อวิเคราะห์ S3 bucket

การ Deploy โดยใช้ CDK
การ Deploy แบบง่ายใช้ AWS CodeBuild เพื่อดำเนินการ deploy ด้วย CDK ภายใน ส่วนนี้จะอธิบายขั้นตอนการ deploy โดยตรงด้วย CDK
- กรุณาเตรียม UNIX, Docker และสภาพแวดล้อมรันไทม์ Node.js ให้พร้อม
Important
หากพื้นที่เก็บข้อมูลในสภาพแวดล้อมท้องถิ่นไม่เพียงพอระหว่างการ deploy การ bootstrap CDK อาจเกิดข้อผิดพลาด เราแนะนำให้ขยายขนาดโวลุ่มของอินสแตนซ์ก่อนทำการ deploy
- โคลนที่เก็บนี้
git clone https://github.com/aws-samples/bedrock-chat
- ติดตั้งแพ็คเกจ npm
cd bedrock-chat
cd cdk
npm ci
-
หากจำเป็น ให้แก้ไขรายการต่อไปนี้ใน cdk.json
bedrockRegion: ภูมิภาคที่มี Bedrock ให้บริการ หมายเหตุ: Bedrock ยังไม่รองรับทุกภูมิภาคในขณะนี้allowedIpV4AddressRanges,allowedIpV6AddressRanges: ช่วง IP Address ที่อนุญาตenableLambdaSnapStart: ค่าเริ่มต้นคือ true ตั้งค่าเป็น false หากกำลัง deploy ไปยังภูมิภาคที่ไม่รองรับ Lambda SnapStart สำหรับฟังก์ชัน PythonglobalAvailableModels: ค่าเริ่มต้นคือทั้งหมด หากตั้งค่า (รายการ model ID) จะควบคุมโมเดลที่ปรากฏในเมนูแบบเลื่อนลงทั่วทั้งการแชทสำหรับผู้ใช้ทุกคนและระหว่างการสร้างบอทในแอปพลิเคชัน Bedrock ChatlogoPath: เส้นทางสัมพันธ์ภายใต้frontend/publicที่ชี้ไปยังรูปภาพที่แสดงที่ด้านบนของลิ้นชักแอปพลิเคชัน รองรับ model ID ต่อไปนี้ (โปรดตรวจสอบว่าได้เปิดใช้งานในคอนโซล Bedrock ภายใต้ Model access ในภูมิภาคที่คุณ deploy):
-
Claude Models:
claude-v4-opus,claude-v4.1-opus,claude-v4-sonnet,claude-v3.5-sonnet,claude-v3.5-sonnet-v2,claude-v3.7-sonnet,claude-v3.5-haiku,claude-v3-haiku,claude-v3-opus -
Amazon Nova Models:
amazon-nova-pro,amazon-nova-lite,amazon-nova-micro -
Mistral Models:
mistral-7b-instruct,mixtral-8x7b-instruct,mistral-large,mistral-large-2 -
DeepSeek Models:
deepseek-r1 -
Meta Llama Models:
llama3-3-70b-instruct,llama3-2-1b-instruct,llama3-2-3b-instruct,llama3-2-11b-instruct,llama3-2-90b-instruct
รายการทั้งหมดสามารถพบได้ใน index.ts
- ก่อนที่จะ deploy CDK คุณจะต้องทำการ Bootstrap หนึ่งครั้งสำหรับภูมิภาคที่คุณจะ deploy
npx cdk bootstrap
- Deploy โปรเจ็กต์ตัวอย่างนี้
npx cdk deploy --require-approval never --all
- คุณจะได้รับผลลัพธ์คล้ายกับด้านล่าง URL ของเว็บแอปจะแสดงใน
BedrockChatStack.FrontendURLโปรดเข้าถึงจากเบราว์เซอร์ของคุณ
✅ BedrockChatStack
✨ Deployment time: 78.57s
Outputs:
BedrockChatStack.AuthUserPoolClientIdXXXXX = xxxxxxx
BedrockChatStack.AuthUserPoolIdXXXXXX = ap-northeast-1_XXXX
BedrockChatStack.BackendApiBackendApiUrlXXXXX = https://xxxxx.execute-api.ap-northeast-1.amazonaws.com
BedrockChatStack.FrontendURL = https://xxxxx.cloudfront.net
การกำหนดพารามิเตอร์
คุณสามารถกำหนดพารามิเตอร์สำหรับการ deploy ได้สองวิธี: ใช้ cdk.json หรือใช้ไฟล์ parameter.ts ที่มีการตรวจสอบประเภท
การใช้ cdk.json (วิธีแบบดั้งเดิม)
วิธีแบบดั้งเดิมในการกำหนดค่าพารามิเตอร์คือการแก้ไขไฟล์ cdk.json วิธีนี้ง่ายแต่ขาดการตรวจสอบประเภท:
{
"app": "npx ts-node --prefer-ts-exts bin/bedrock-chat.ts",
"context": {
"bedrockRegion": "us-east-1",
"allowedIpV4AddressRanges": ["0.0.0.0/1", "128.0.0.0/1"],
"selfSignUpEnabled": true,
"globalAvailableModels": [
"claude-v3.7-sonnet",
"claude-v3.5-sonnet",
"amazon-nova-pro",
"amazon-nova-lite",
"llama3-3-70b-instruct"
],
}
}
การใช้ parameter.ts (วิธีที่แนะนำที่มีการตรวจสอบประเภท)
สำหรับการตรวจสอบประเภทและประสบการณ์นักพัฒนาที่ดีขึ้น คุณสามารถใช้ไฟล์ parameter.ts เพื่อกำหนดพารามิเตอร์ของคุณ:
// กำหนดพารามิเตอร์สำหรับสภาพแวดล้อมเริ่มต้น
bedrockChatParams.set("default", {
bedrockRegion: "us-east-1",
allowedIpV4AddressRanges: ["192.168.0.0/16"],
selfSignUpEnabled: true,
globalAvailableModels: [
"claude-v3.7-sonnet",
"claude-v3.5-sonnet",
"amazon-nova-pro",
"amazon-nova-lite",
"llama3-3-70b-instruct"
],
});
// กำหนดพารามิเตอร์สำหรับสภาพแวดล้อมเพิ่มเติม
bedrockChatParams.set("dev", {
bedrockRegion: "us-west-2",
allowedIpV4AddressRanges: ["10.0.0.0/8"],
enableRagReplicas: false, // ประหยัดต้นทุนสำหรับสภาพแวดล้อมการพัฒนา
enableBotStoreReplicas: false, // ประหยัดต้นทุนสำหรับสภาพแวดล้อมการพัฒนา
});
bedrockChatParams.set("prod", {
bedrockRegion: "us-east-1",
allowedIpV4AddressRanges: ["172.16.0.0/12"],
enableLambdaSnapStart: true,
enableRagReplicas: true, // เพิ่มความพร้อมใช้งานสำหรับการผลิต
enableBotStoreReplicas: true, // เพิ่มความพร้อมใช้งานสำหรับการผลิต
});
Note
ผู้ใช้ที่มีอยู่สามารถใช้ cdk.json ต่อไปได้โดยไม่ต้องเปลี่ยนแปลงใดๆ แนะนำให้ใช้วิธี parameter.ts สำหรับการ deploy ใหม่หรือเมื่อคุณต้องจัดการหลายสภาพแวดล้อม
การ Deploy หลายสภาพแวดล้อม
คุณสามารถ deploy หลายสภาพแวดล้อมจากโค้ดเดียวกันโดยใช้ไฟล์ parameter.ts และตัวเลือก -c envName
ข้อกำหนดเบื้องต้น
- กำหนดสภาพแวดล้อมของคุณใน
parameter.tsตามที่แสดงด้านบน - แต่ละสภาพแวดล้อมจะมีทรัพยากรของตัวเองพร้อมคำนำหน้าเฉพาะสภาพแวดล้อม
คำสั่ง Deploy
เพื่อ deploy สภาพแวดล้อมเฉพาะ:
# Deploy สภาพแวดล้อมการพัฒนา
npx cdk deploy --all -c envName=dev
# Deploy สภาพแวดล้อมการผลิต
npx cdk deploy --all -c envName=prod
หากไม่ได้ระบุสภาพแวดล้อม จะใช้สภาพแวดล้อม "default":
# Deploy สภาพแวดล้อมเริ่มต้น
npx cdk deploy --all
หมายเหตุสำคัญ
-
การตั้งชื่อสแต็ก:
- สแต็กหลักสำหรับแต่ละสภาพแวดล้อมจะมีคำนำหน้าด้วยชื่อสภาพแวดล้อม (เช่น
dev-BedrockChatStack,prod-BedrockChatStack) - อย่างไรก็ตาม สแต็กบอทที่กำหนดเอง (
BrChatKbStack*) และสแต็กการเผยแพร่ API (ApiPublishmentStack*) ไม่ได้รับคำนำหน้าสภาพแวดล้อมเนื่องจากถูกสร้างขึ้นแบบไดนามิกในขณะรันไทม์
- สแต็กหลักสำหรับแต่ละสภาพแวดล้อมจะมีคำนำหน้าด้วยชื่อสภาพแวดล้อม (เช่น
-
การตั้งชื่อทรัพยากร:
- ทรัพยากรบางอย่างเท่านั้นที่ได้รับคำนำหน้าสภาพแวดล้อมในชื่อ (เช่น ตาราง
dev_ddb_export,dev-FrontendWebAcl) - ทรัพยากรส่วนใหญ่คงชื่อเดิมไว้แต่ถูกแยกโดยอยู่ในสแต็กที่แตกต่างกัน
- ทรัพยากรบางอย่างเท่านั้นที่ได้รับคำนำหน้าสภาพแวดล้อมในชื่อ (เช่น ตาราง
-
การระบุสภาพแวดล้อม:
- ทรัพยากรทั้งหมดจะถูกแท็กด้วยแท็ก
CDKEnvironmentที่มีชื่อสภาพแวดล้อม - คุณสามารถใช้แท็กนี้เพื่อระบุว่าทรัพยากรเป็นของสภาพแวดล้อมใด
- ตัวอย่าง:
CDKEnvironment: devหรือCDKEnvironment: prod
- ทรัพยากรทั้งหมดจะถูกแท็กด้วยแท็ก
-
การแทนที่สภาพแวดล้อมเริ่มต้น: หากคุณกำหนดสภาพแวดล้อม "default" ใน
parameter.tsมันจะแทนที่การตั้งค่าในcdk.jsonหากต้องการใช้cdk.jsonต่อไป อย่ากำหนดสภาพแวดล้อม "default" ในparameter.ts -
ข้อกำหนดสภาพแวดล้อม: ในการสร้างสภาพแวดล้อมอื่นนอกเหนือจาก "default" คุณต้องใช้
parameter.tsตัวเลือก-c envNameเพียงอย่างเดียวไม่เพียงพอหากไม่มีการกำหนดสภาพแวดล้อมที่สอดคล้องกัน -
**การแยกทรัพ
อื่นๆ
คุณสามารถกำหนดพารามิเตอร์สำหรับการ deploy ได้สองวิธี: ใช้ cdk.json หรือใช้ไฟล์ parameter.ts ที่มีการตรวจสอบประเภทข้อมูล
การใช้ cdk.json (วิธีแบบดั้งเดิม)
วิธีดั้งเดิมในการกำหนดค่าพารามิเตอร์คือการแก้ไขไฟล์ cdk.json วิธีนี้ง่ายแต่ขาดการตรวจสอบประเภทข้อมูล:
{
"app": "npx ts-node --prefer-ts-exts bin/bedrock-chat.ts",
"context": {
"bedrockRegion": "us-east-1",
"allowedIpV4AddressRanges": ["0.0.0.0/1", "128.0.0.0/1"],
"selfSignUpEnabled": true
}
}
การใช้ parameter.ts (วิธีที่แนะนำที่มีการตรวจสอบประเภทข้อมูล)
เพื่อการตรวจสอบประเภทข้อมูลที่ดีขึ้นและประสบการณ์การพัฒนาที่ดีกว่า คุณสามารถใช้ไฟล์ parameter.ts เพื่อกำหนดพารามิเตอร์ของคุณ:
// กำหนดพารามิเตอร์สำหรับสภาพแวดล้อมเริ่มต้น
bedrockChatParams.set("default", {
bedrockRegion: "us-east-1",
allowedIpV4AddressRanges: ["192.168.0.0/16"],
selfSignUpEnabled: true,
});
// กำหนดพารามิเตอร์สำหรับสภาพแวดล้อมเพิ่มเติม
bedrockChatParams.set("dev", {
bedrockRegion: "us-west-2",
allowedIpV4AddressRanges: ["10.0.0.0/8"],
enableRagReplicas: false, // ประหยัดค่าใช้จ่ายสำหรับสภาพแวดล้อมการพัฒนา
});
bedrockChatParams.set("prod", {
bedrockRegion: "us-east-1",
allowedIpV4AddressRanges: ["172.16.0.0/12"],
enableLambdaSnapStart: true,
enableRagReplicas: true, // เพิ่มความพร้อมใช้งานสำหรับการผลิต
});
Note
ผู้ใช้ที่มีอยู่สามารถใช้ cdk.json ต่อไปได้โดยไม่ต้องมีการเปลี่ยนแปลง วิธีการใช้ parameter.ts แนะนำสำหรับการ deploy ใหม่หรือเมื่อคุณต้องจัดการหลายสภาพแวดล้อม
การ Deploy หลายสภาพแวดล้อม
คุณสามารถ deploy หลายสภาพแวดล้อมจากโค้ดเดียวกันโดยใช้ไฟล์ parameter.ts และตัวเลือก -c envName
ข้อกำหนดเบื้องต้น
- กำหนดสภาพแวดล้อมของคุณใน
parameter.tsตามที่แสดงด้านบน - แต่ละสภาพแวดล้อมจะมีทรัพยากรของตัวเองพร้อมคำนำหน้าเฉพาะสภาพแวดล้อม
คำสั่งสำหรับ Deploy
เพื่อ deploy สภาพแวดล้อมเฉพาะ:
# Deploy สภาพแวดล้อมการพัฒนา
npx cdk deploy --all -c envName=dev
# Deploy สภาพแวดล้อมการผลิต
npx cdk deploy --all -c envName=prod
หากไม่ได้ระบุสภาพแวดล้อม จะใช้สภาพแวดล้อม "default":
# Deploy สภาพแวดล้อมเริ่มต้น
npx cdk deploy --all
หมายเหตุสำคัญ
-
การตั้งชื่อ Stack:
- Stack หลักสำหรับแต่ละสภาพแวดล้อมจะมีคำนำหน้าด้วยชื่อสภาพแวดล้อม (เช่น
dev-BedrockChatStack,prod-BedrockChatStack) - อย่างไรก็ตาม stack บอทที่กำหนดเอง (
BrChatKbStack*) และ stack การเผยแพร่ API (ApiPublishmentStack*) จะไม่ได้รับคำนำหน้าสภาพแวดล้อมเนื่องจากถูกสร้างขึ้นแบบไดนามิกในขณะรันไทม์
- Stack หลักสำหรับแต่ละสภาพแวดล้อมจะมีคำนำหน้าด้วยชื่อสภาพแวดล้อม (เช่น
-
การตั้งชื่อทรัพยากร:
- ทรัพยากรบางอย่างเท่านั้นที่จะได้รับคำนำหน้าสภาพแวดล้อมในชื่อ (เช่น ตาราง
dev_ddb_export,dev-FrontendWebAcl) - ทรัพยากรส่วนใหญ่ยังคงใช้ชื่อเดิมแต่ถูกแยกโดยอยู่ใน stack ที่แตกต่างกัน
- ทรัพยากรบางอย่างเท่านั้นที่จะได้รับคำนำหน้าสภาพแวดล้อมในชื่อ (เช่น ตาราง
-
การระบุสภาพแวดล้อม:
- ทรัพยากรทั้งหมดจะถูกติดแท็กด้วยแท็ก
CDKEnvironmentที่มีชื่อสภาพแวดล้อม - คุณสามารถใช้แท็กนี้เพื่อระบุว่าทรัพยากรนั้นเป็นของสภาพแวดล้อมใด
- ตัวอย่าง:
CDKEnvironment: devหรือCDKEnvironment: prod
- ทรัพยากรทั้งหมดจะถูกติดแท็กด้วยแท็ก
-
การแทนที่สภาพแวดล้อมเริ่มต้น: หากคุณกำหนดสภาพแวดล้อม "default" ใน
parameter.tsมันจะแทนที่การตั้งค่าในcdk.jsonหากต้องการใช้cdk.jsonต่อไป อย่ากำหนดสภาพแวดล้อม "default" ในparameter.ts -
ข้อกำหนดของสภาพแวดล้อม: ในการสร้างสภาพแวดล้อมอื่นนอกเหนือจาก "default" คุณต้องใช้
parameter.tsการใช้ตัวเลือก-c envNameเพียงอย่างเดียวไม่เพียงพอหากไม่มีการกำหนดสภาพแวดล้อมที่เกี่ยวข้อง -
การแยกทรัพยากร: แต่ละสภาพแวดล้อมจะสร้างชุดทรัพยากรของตัวเอง ทำให้คุณสามารถมีสภาพแวดล้อมสำหรับการพัฒนา การทดสอบ และการผลิตในบัญชี AWS เดียวกันโดยไม่มีความขัดแย้ง
อื่นๆ
การลบทรัพยากร
หากใช้ cli และ CDK กรุณาใช้คำสั่ง npx cdk destroy หากไม่ได้ใช้ ให้เข้าไปที่ CloudFormation จากนั้นลบ BedrockChatStack และ FrontendWafStack ด้วยตนเอง โปรดทราบว่า FrontendWafStack อยู่ในภูมิภาค us-east-1
การตั้งค่าภาษา
แอสเซทนี้ตรวจจับภาษาโดยอัตโนมัติโดยใช้ i18next-browser-languageDetector คุณสามารถเปลี่ยนภาษาได้จากเมนูแอปพลิเคชัน หรือใช้ Query String เพื่อตั้งค่าภาษาดังตัวอย่างด้านล่าง
https://example.com?lng=ja
ปิดการลงทะเบียนด้วยตนเอง
ตัวอย่างนี้เปิดใช้งานการลงทะเบียนด้วยตนเองโดยค่าเริ่มต้น หากต้องการปิดการลงทะเบียนด้วยตนเอง ให้เปิดไฟล์ cdk.json และเปลี่ยน selfSignUpEnabled เป็น false หากคุณกำหนดค่า ผู้ให้บริการตัวตนภายนอก ค่านี้จะถูกละเว้นและปิดใช้งานโดยอัตโนมัติ
จำกัดโดเมนสำหรับอีเมลที่ใช้ลงทะเบียน
โดยค่าเริ่มต้น ตัวอย่างนี้ไม่จำกัดโดเมนสำหรับอีเมลที่ใช้ลงทะเบียน หากต้องการอนุญาตการลงทะเบียนเฉพาะจากโดเมนที่กำหนด ให้เปิดไฟล์ cdk.json และระบุโดเมนเป็นรายการใน allowedSignUpEmailDomains
"allowedSignUpEmailDomains": ["example.com"],
ผู้ให้บริการตัวตนภายนอก
ตัวอย่างนี้รองรับผู้ให้บริการตัวตนภายนอก ปัจจุบันเรารองรับ Google และ ผู้ให้บริการ OIDC แบบกำหนดเอง
WAF ส่วนหน้าแบบทางเลือก
สำหรับการกระจาย CloudFront WebACLs ของ AWS WAF ต้องถูกสร้างในภูมิภาค us-east-1 ในบางองค์กร การสร้างทรัพยากรนอกภูมิภาคหลักถูกจำกัดโดยนโยบาย ในสภาพแวดล้อมดังกล่าว การปรับใช้ CDK อาจล้มเหลวเมื่อพยายามจัดเตรียม Frontend WAF ใน us-east-1
เพื่อรองรับข้อจำกัดเหล่านี้ สแต็ก Frontend WAF จึงเป็นทางเลือก เมื่อปิดใช้งาน การกระจาย CloudFront จะถูกปรับใช้โดยไม่มี WebACL ซึ่งหมายความว่าคุณจะไม่มีการควบคุมการอนุญาต/ปฏิเสธ IP ที่ขอบส่วนหน้า การยืนยันตัวตนและการควบคุมแอปพลิเคชันอื่นๆ ทั้งหมดยังคงทำงานตามปกติ โปรดทราบว่าการตั้งค่านี้มีผลเฉพาะกับ Frontend WAF (ขอบเขต CloudFront) WAF ของ Published API (ระดับภูมิภาค) ยังคงไม่ได้รับผลกระทบ
หากต้องการปิดการใช้งาน Frontend WAF ให้ตั้งค่าต่อไปนี้ใน parameter.ts (วิธีที่แนะนำแบบ Type-Safe):
bedrockChatParams.set("default", {
enableFrontendWaf: false
});
หรือหากใช้ cdk/cdk.json แบบเดิม ให้ตั้งค่าต่อไปนี้:
"enableFrontendWaf": false
เพิ่มผู้ใช้ใหม่เข้ากลุ่มโดยอัตโนมัติ
ตัวอย่างนี้มีกลุ่มต่อไปนี้เพื่อให้สิทธิ์แก่ผู้ใช้:
หากคุณต้องการให้ผู้ใช้ที่สร้างใหม่เข้าร่วมกลุ่มโดยอัตโนมัติ คุณสามารถระบุกลุ่มได้ใน cdk.json
"autoJoinUserGroups": ["CreatingBotAllowed"],
โดยค่าเริ่มต้น ผู้ใช้ที่สร้างใหม่จะถูกเพิ่มเข้ากลุ่ม CreatingBotAllowed
กำหนดค่า RAG Replicas
enableRagReplicas เป็นตัวเลือกใน cdk.json ที่ควบคุมการตั้งค่าเรพลิก้าสำหรับฐานข้อมูล RAG โดยเฉพาะ Knowledge Bases ที่ใช้ Amazon OpenSearch Serverless
- ค่าเริ่มต้น: true
- true: เพิ่มความพร้อมใช้งานโดยเปิดใช้งานเรพลิก้าเพิ่มเติม เหมาะสำหรับสภาพแวดล้อมการผลิตแต่เพิ่มค่าใช้จ่าย
- false: ลดค่าใช้จ่ายโดยใช้เรพลิก้าน้อยลง เหมาะสำหรับการพัฒนาและทดสอบ
นี่เป็นการตั้งค่าระดับบัญชี/ภูมิภาค ที่มีผลต่อแอปพลิเคชันทั้งหมดแทนที่จะเป็นบอทแต่ละตัว
Note
ตั้งแต่มิถุนายน 2024 Amazon OpenSearch Serverless รองรับ 0.5 OCU ช่วยลดค่าใช้จ่ายเริ่มต้นสำหรับงานขนาดเล็ก การปรับใช้ในการผลิตสามารถเริ่มต้นด้วย 2 OCUs ในขณะที่งานพัฒนา/ทดสอบสามารถใช้ 1 OCU OpenSearch Serverless ปรับขนาดอัตโนมัติตามความต้องการของงาน สำหรับรายละเอียดเพิ่มเติม เยี่ยมชม ประกาศ
กำหนดค่า Bot Store
คุณลักษณะ bot store ช่วยให้ผู้ใช้สามารถแชร์และค้นพบบอทที่กำหนดเอง คุณสามารถกำหนดค่า bot store ผ่านการตั้งค่าต่อไปนี้ใน cdk.json:
{
"context": {
"enableBotStore": true,
"enableBotStoreReplicas": false,
"botStoreLanguage": "en"
}
}
- enableBotStore: ควบคุมว่าจะเปิดใช้งานคุณลักษณะ bot store หรือไม่ (ค่าเริ่มต้น:
true) - botStoreLanguage: กำหนดภาษาหลักสำหรับการค้นหาและค้นพบบอท (ค่าเริ่มต้น:
"en") ส่งผลต่อวิธีการทำดัชนีและค้นหาบอทใน bot store โดยปรับการวิเคราะห์ข้อความให้เหมาะสมกับภาษาที่ระบุ - enableBotStoreReplicas: ควบคุมว่าจะเปิดใช้งานเรพลิก้าสแตนด์บายสำหรับคอลเลกชัน OpenSearch Serverless ที่ใช้โดย bot store หรือไม่ (ค่าเริ่มต้น:
false) การตั้งค่าเป็นtrueจะช่วยเพิ่มความพร้อมใช้งานแต่เพิ่มค่าใช้จ่าย ในขณะที่falseจะลดค่าใช้จ่ายแต่อาจส่งผลต่อความพร้อมใช้งานสำคัญ: คุณไม่สามารถอัปเดตคุณสมบัตินี้หลังจากที่สร้างคอลเลกชันแล้ว หากคุณพยายามแก้ไขคุณสมบัตินี้ คอลเลกชันจะยังคงใช้ค่าเดิม
การอนุมานข้ามภูมิภาค
การอนุมานข้ามภูมิภาค ช่วยให้ Amazon Bedrock สามารถกำหนดเส้นทางคำขออนุมานโมเดลข้ามภูมิภาค AWS หลายภูมิภาคแบบไดนามิก เพื่อเพิ่มประสิทธิภาพและความยืดหยุ่นในช่วงที่มีความต้องการสูง หากต้องการกำหนดค่า ให้แก้ไข cdk.json
"enableBedrockCrossRegionInference": true
Lambda SnapStart
Lambda SnapStart ช่วยปรับปรุงเวลาเริ่มต้นเย็นสำหรับฟังก์ชัน Lambda ให้ตอบสนองได้เร็วขึ้นเพื่อประสบการณ์ผู้ใช้ที่ดีขึ้น ในทางกลับกัน สำหรับฟังก์ชัน Python จะมีค่าใช้จ่ายขึ้นอยู่กับขนาดแคช และไม่พร้อมใช้งานในบางภูมิภาค ในปัจจุบัน หากต้องการปิดการใช้งาน SnapStart ให้แก้ไข cdk.json
"enableLambdaSnapStart": false
กำหนดค่าโดเมนแบบกำหนดเอง
คุณสามารถกำหนดค่าโดเมนแบบกำหนดเองสำหรับการกระจาย CloudFront โดยตั้งค่าพารามิเตอร์ต่อไปนี้ใน cdk.json:
{
"alternateDomainName": "chat.example.com",
"hostedZoneId": "Z0123456789ABCDEF"
}
alternateDomainName: ชื่อโดเมนแบบกำหนดเองสำหรับแอปพลิเคชันแชทของคุณ (เช่น chat.example.com)hostedZoneId: ID ของโซนโฮสต์ Route 53 ที่จะสร้างเรคอร์ดโดเมน
เม
ติดต่อ
🏆 ผู้มีส่วนร่วมที่สำคัญ
ผู้มีส่วนร่วม
การอนุญาตใช้งาน
ไลบรารีนี้ได้รับอนุญาตภายใต้สัญญาอนุญาต MIT-0 โปรดดูไฟล์การอนุญาตใช้งาน

