README_ms-MY.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
Platform AI generatif berbilang bahasa yang dikuasakan oleh Amazon Bedrock. Menyokong perbualan, bot tersuai dengan pengetahuan (RAG), perkongsian bot melalui kedai bot, dan automasi tugas menggunakan ejen.

Warning
V3 telah dikeluarkan. Untuk mengemas kini, sila semak dengan teliti panduan migrasi. Tanpa sebarang perhatian, BOT DARI V2 AKAN MENJADI TIDAK BOLEH DIGUNAKAN.
Personalisasi Bot / Kedai Bot
Tambah arahan dan pengetahuan anda sendiri (juga dikenali sebagai RAG. Bot boleh dikongsi antara pengguna aplikasi melalui pasaran kedai bot. Bot yang disuaikan juga boleh diterbitkan sebagai API tersendiri (Lihat butiran).
Important
Atas sebab tadbir urus, hanya pengguna yang dibenarkan boleh mencipta bot tersuai. Untuk membenarkan penciptaan bot tersuai, pengguna mesti menjadi ahli kumpulan yang dipanggil CreatingBotAllowed, yang boleh disediakan melalui konsol pengurusan > Amazon Cognito User pools atau aws cli. Perhatikan bahawa id kumpulan pengguna boleh dirujuk dengan mengakses CloudFormation > BedrockChatStack > Outputs > AuthUserPoolIdxxxx.
Ciri-ciri Pentadbiran
Pengurusan API, Tandakan bot sebagai penting, Analisis penggunaan untuk bot. butiran
Tangkapan Skrin
)
Ejen
Dengan menggunakan fungsi Ejen, bot perbualan anda boleh mengendalikan tugas yang lebih kompleks secara automatik. Sebagai contoh, untuk menjawab soalan pengguna, Ejen boleh mendapatkan maklumat yang diperlukan daripada alat luaran atau memecahkan tugas kepada beberapa langkah untuk diproses.
Tangkapan Skrin

🚀 Penempatan Super Mudah
- Di rantau us-east-1, buka Akses Model Bedrock >
Manage model access> Tandakan semua model yang anda ingin gunakan dan kemudianSave changes.
Tangkapan Skrin

Rantau yang Disokong
Sila pastikan anda menempatkan Bedrock Chat di rantau di mana OpenSearch Serverless dan API Ingestion tersedia, jika anda ingin menggunakan bot dan mencipta pangkalan pengetahuan (OpenSearch Serverless adalah pilihan lalai). Sehingga Ogos 2025, rantau berikut disokong: 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
Untuk parameter bedrock-region anda perlu memilih rantau di mana Bedrock tersedia.
- Buka CloudShell di rantau di mana anda ingin menempatkan
- Jalankan penempatan melalui arahan berikut. Jika anda ingin menentukan versi untuk ditempatkan atau perlu menggunakan dasar keselamatan, sila tentukan parameter yang sesuai dari Parameter Pilihan.
git clone https://github.com/aws-samples/bedrock-chat.git
cd bedrock-chat
chmod +x bin.sh
./bin.sh
- Anda akan ditanya sama ada pengguna baru atau menggunakan v3. Jika anda bukan pengguna yang meneruskan dari v0, sila masukkan
y.
Parameter Pilihan
Anda boleh menentukan parameter berikut semasa penempatan untuk meningkatkan keselamatan dan penyesuaian:
- --disable-self-register: Nyahaktifkan pendaftaran sendiri (lalai: diaktifkan). Jika bendera ini ditetapkan, anda perlu mencipta semua pengguna di cognito dan ia tidak akan membenarkan pengguna mendaftar akaun mereka sendiri.
- --enable-lambda-snapstart: Aktifkan Lambda SnapStart (lalai: dinyahaktifkan). Jika bendera ini ditetapkan, ia meningkatkan masa mula sejuk untuk fungsi Lambda, memberikan masa tindak balas yang lebih pantas untuk pengalaman pengguna yang lebih baik.
- --ipv4-ranges: Senarai julat IPv4 yang dibenarkan, dipisahkan dengan koma. (lalai: benarkan semua alamat ipv4)
- --ipv6-ranges: Senarai julat IPv6 yang dibenarkan, dipisahkan dengan koma. (lalai: benarkan semua alamat ipv6)
- --disable-ipv6: Nyahaktifkan sambungan melalui IPv6. (lalai: diaktifkan)
- --allowed-signup-email-domains: Senarai domain e-mel yang dibenarkan untuk pendaftaran, dipisahkan dengan koma. (lalai: tiada sekatan domain)
- --bedrock-region: Tentukan rantau di mana bedrock tersedia. (lalai: us-east-1)
- --repo-url: Repo tersuai Bedrock Chat untuk ditempatkan, jika difork atau kawalan sumber tersuai. (lalai: https://github.com/aws-samples/bedrock-chat.git)
- --version: Versi Bedrock Chat untuk ditempatkan. (lalai: versi terkini dalam pembangunan)
- --cdk-json-override: Anda boleh mengatasi mana-mana nilai konteks CDK semasa penempatan menggunakan blok JSON override. Ini membolehkan anda mengubah suai konfigurasi tanpa mengedit fail cdk.json secara langsung.
Contoh penggunaan:
./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 override mesti mengikuti struktur yang sama seperti cdk.json. Anda boleh mengatasi mana-mana nilai konteks termasuk:
selfSignUpEnabledenableLambdaSnapStartallowedIpV4AddressRangesallowedIpV6AddressRangesallowedCountriesallowedSignUpEmailDomainsbedrockRegionenableRagReplicasenableBedrockCrossRegionInferenceglobalAvailableModels: menerima senarai ID model untuk diaktifkan. Nilai lalai adalah senarai kosong, yang mengaktifkan semua model.logoPath: laluan relatif ke aset logo dalam direktori frontendpublic/yang muncul di bahagian atas laci navigasi.- Dan nilai konteks lain yang ditakrifkan dalam cdk.json
Note
Nilai override akan digabungkan dengan konfigurasi cdk.json sedia ada semasa masa penempatan dalam AWS code build. Nilai yang ditentukan dalam override akan mengambil keutamaan berbanding nilai dalam cdk.json.
Contoh arahan dengan parameter:
./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"
- Selepas kira-kira 35 minit, anda akan mendapat output berikut, yang boleh anda akses dari pelayar anda
Frontend URL: https://xxxxxxxxx.cloudfront.net

Skrin pendaftaran akan muncul seperti yang ditunjukkan di atas, di mana anda boleh mendaftar e-mel anda dan log masuk.
Important
Tanpa menetapkan parameter pilihan, kaedah penempatan ini membenarkan sesiapa sahaja yang mengetahui URL untuk mendaftar. Untuk penggunaan pengeluaran, adalah sangat disyorkan untuk menambah sekatan alamat IP dan menyahaktifkan pendaftaran sendiri untuk mengurangkan risiko keselamatan (anda boleh menentukan allowed-signup-email-domains untuk menyekat pengguna supaya hanya alamat e-mel dari domain syarikat anda boleh mendaftar). Gunakan kedua-dua ipv4-ranges dan ipv6-ranges untuk sekatan alamat IP, dan nyahaktifkan pendaftaran sendiri dengan menggunakan disable-self-register semasa melaksanakan ./bin.
Tip
Jika Frontend URL tidak muncul atau Bedrock Chat tidak berfungsi dengan betul, ia mungkin masalah dengan versi terkini. Dalam kes ini, sila tambah --version "v3.0.0" pada parameter dan cuba penempatan sekali lagi.
Seni Bina
Ia adalah seni bina yang dibina pada perkhidmatan terurus AWS, menghapuskan keperluan untuk pengurusan infrastruktur. Dengan menggunakan Amazon Bedrock, tiada keperluan untuk berkomunikasi dengan API di luar AWS. Ini membolehkan penerapan aplikasi yang berskala, boleh dipercayai, dan selamat.
- Amazon DynamoDB: Pangkalan data NoSQL untuk penyimpanan sejarah perbualan
- Amazon API Gateway + AWS Lambda: Titik akhir API backend (AWS Lambda Web Adapter, FastAPI)
- Amazon CloudFront + S3: Penghantaran aplikasi frontend (React, Tailwind CSS)
- AWS WAF: Sekatan alamat IP
- Amazon Cognito: Pengesahan pengguna
- Amazon Bedrock: Perkhidmatan terurus untuk menggunakan model asas melalui API
- Amazon Bedrock Knowledge Bases: Menyediakan antara muka terurus untuk Generasi Dipertingkat Pengambilan Semula (RAG), menawarkan perkhidmatan untuk pembenaman dan penghuraian dokumen
- Amazon EventBridge Pipes: Menerima peristiwa dari aliran DynamoDB dan melancarkan Step Functions untuk membenamkan pengetahuan luaran
- AWS Step Functions: Mengorkestrakan saluran pengambilan untuk membenamkan pengetahuan luaran ke dalam Bedrock Knowledge Bases
- Amazon OpenSearch Serverless: Berfungsi sebagai pangkalan data backend untuk Bedrock Knowledge Bases, menyediakan carian teks penuh dan carian vektor, membolehkan pengambilan maklumat berkaitan yang tepat
- Amazon Athena: Perkhidmatan pertanyaan untuk menganalisis bucket S3

Menggunakan CDK untuk Penempatan
Penempatan Super-mudah menggunakan AWS CodeBuild untuk melakukan penempatan menggunakan CDK secara dalaman. Bahagian ini menerangkan prosedur untuk penempatan secara langsung dengan CDK.
- Sila pastikan anda mempunyai UNIX, Docker dan persekitaran runtime Node.js.
Important
Jika ruang storan dalam persekitaran tempatan tidak mencukupi semasa penempatan, bootstrap CDK mungkin mengakibatkan ralat. Kami mengesyorkan untuk menambah saiz volum instans sebelum melakukan penempatan.
- Klon repositori ini
git clone https://github.com/aws-samples/bedrock-chat
- Pasang pakej npm
cd bedrock-chat
cd cdk
npm ci
-
Jika perlu, edit entri berikut dalam cdk.json.
bedrockRegion: Wilayah di mana Bedrock tersedia. NOTA: Bedrock TIDAK menyokong semua wilayah buat masa ini.allowedIpV4AddressRanges,allowedIpV6AddressRanges: Julat alamat IP yang dibenarkan.enableLambdaSnapStart: Lalai kepada true. Tetapkan kepada false jika menggunakan wilayah yang tidak menyokong Lambda SnapStart untuk fungsi Python.globalAvailableModels: Lalai kepada semua. Jika ditetapkan (senarai ID model), membolehkan kawalan global model yang muncul dalam menu dropdown merentasi perbualan untuk semua pengguna dan semasa penciptaan bot dalam aplikasi Bedrock Chat.logoPath: Laluan relatif di bawahfrontend/publicyang menunjuk kepada imej yang dipaparkan di bahagian atas laci aplikasi. ID model berikut disokong (sila pastikan ia juga diaktifkan dalam konsol Bedrock di bawah Akses Model di wilayah penempatan anda):
-
Model Claude:
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 -
Model Amazon Nova:
amazon-nova-pro,amazon-nova-lite,amazon-nova-micro -
Model Mistral:
mistral-7b-instruct,mixtral-8x7b-instruct,mistral-large,mistral-large-2 -
Model DeepSeek:
deepseek-r1 -
Model Meta Llama:
llama3-3-70b-instruct,llama3-2-1b-instruct,llama3-2-3b-instruct,llama3-2-11b-instruct,llama3-2-90b-instruct
Senarai penuh boleh didapati dalam index.ts.
- Sebelum menempatkan CDK, anda perlu melakukan Bootstrap sekali untuk wilayah yang anda ingin tempatkan.
npx cdk bootstrap
- Tempatkan projek sampel ini
npx cdk deploy --require-approval never --all
- Anda akan mendapat output seperti berikut. URL aplikasi web akan dikeluarkan dalam
BedrockChatStack.FrontendURL, sila akses melalui pelayar web anda.
✅ 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
Menentukan Parameter
Anda boleh menentukan parameter untuk penempatan anda dalam dua cara: menggunakan cdk.json atau menggunakan fail parameter.ts yang selamat jenis.
Menggunakan cdk.json (Kaedah Tradisional)
Cara tradisional untuk mengkonfigurasi parameter adalah dengan mengedit fail cdk.json. Pendekatan ini mudah tetapi tidak mempunyai pemeriksaan jenis:
{
"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"
],
}
}
Menggunakan parameter.ts (Kaedah Selamat Jenis yang Disyorkan)
Untuk keselamatan jenis dan pengalaman pembangun yang lebih baik, anda boleh menggunakan fail parameter.ts untuk menentukan parameter anda:
// Tentukan parameter untuk persekitaran lalai
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"
],
});
// Tentukan parameter untuk persekitaran tambahan
bedrockChatParams.set("dev", {
bedrockRegion: "us-west-2",
allowedIpV4AddressRanges: ["10.0.0.0/8"],
enableRagReplicas: false, // Penjimatan kos untuk persekitaran dev
enableBotStoreReplicas: false, // Penjimatan kos untuk persekitaran dev
});
bedrockChatParams.set("prod", {
bedrockRegion: "us-east-1",
allowedIpV4AddressRanges: ["172.16.0.0/12"],
enableLambdaSnapStart: true,
enableRagReplicas: true, // Ketersediaan dipertingkatkan untuk produksi
enableBotStoreReplicas: true, // Ketersediaan dipertingkatkan untuk produksi
});
Note
Pengguna sedia ada boleh terus menggunakan cdk.json tanpa sebarang perubahan. Pendekatan parameter.ts disyorkan untuk penempatan baharu atau apabila anda perlu menguruskan pelbagai persekitaran.
Menempatkan Pelbagai Persekitaran
Anda boleh menempatkan pelbagai persekitaran dari kod asas yang sama menggunakan fail parameter.ts dan pilihan -c envName.
Prasyarat
- Tentukan persekitaran anda dalam
parameter.tsseperti yang ditunjukkan di atas - Setiap persekitaran akan mempunyai set sumber sendiri dengan awalan khusus persekitaran
Arahan Penempatan
Untuk menempatkan persekitaran tertentu:
# Tempatkan persekitaran dev
npx cdk deploy --all -c envName=dev
# Tempatkan persekitaran prod
npx cdk deploy --all -c envName=prod
Jika tiada persekitaran dinyatakan, persekitaran "default" digunakan:
# Tempatkan persekitaran default
npx cdk deploy --all
Nota Penting
-
Penamaan Stack:
- Stack utama untuk setiap persekitaran akan mempunyai awalan nama persekitaran (contoh:
dev-BedrockChatStack,prod-BedrockChatStack) - Walau bagaimanapun, stack bot tersuai (
BrChatKbStack*) dan stack penerbitan API (ApiPublishmentStack*) tidak menerima awalan persekitaran kerana ia dicipta secara dinamik semasa runtime
- Stack utama untuk setiap persekitaran akan mempunyai awalan nama persekitaran (contoh:
-
Penamaan Sumber:
- Hanya beberapa sumber menerima awalan persekitaran dalam nama mereka (contoh: jadual
dev_ddb_export,dev-FrontendWebAcl) - Kebanyakan sumber mengekalkan nama asal mereka tetapi diasingkan dengan berada dalam stack yang berbeza
- Hanya beberapa sumber menerima awalan persekitaran dalam nama mereka (contoh: jadual
-
Pengenalpastian Persekitaran:
- Semua sumber ditag dengan tag
CDKEnvironmentyang mengandungi nama persekitaran - Anda boleh menggunakan tag ini untuk mengenal pasti persekitaran sumber tersebut
- Contoh:
CDKEnvironment: devatauCDKEnvironment: prod
- Semua sumber ditag dengan tag
-
Penggantian Persekitaran Lalai: Jika anda menentukan persekitaran "default" dalam
parameter.ts, ia akan menggantikan tetapan dalamcdk.json. Untuk terus menggunakancdk.json, jangan tentukan persekitaran "default" dalamparameter.ts. -
Keperluan Persekitaran: Untuk mencipta persekitaran selain daripada "default", anda mesti menggunakan
parameter.ts. Pilihan-c envNamesahaja tidak mencukupi tanpa definisi persekitaran yang sepadan. -
Pengasingan Sumber: Setiap persekitaran mencipta set sumber sendiri, membolehkan anda mempunyai persekitaran pembangunan, pengujian, dan produksi dalam akaun AWS yang sama tanpa konflik.
Lain-lain
Anda boleh menentukan parameter untuk penempatan anda dalam dua cara: menggunakan cdk.json atau menggunakan fail parameter.ts yang selamat jenis.
Menggunakan cdk.json (Kaedah Tradisional)
Cara tradisional untuk mengkonfigurasi parameter adalah dengan menyunting fail cdk.json. Pendekatan ini mudah tetapi tidak mempunyai semakan jenis:
{
"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
}
}
Menggunakan parameter.ts (Kaedah Selamat Jenis yang Disyorkan)
Untuk keselamatan jenis dan pengalaman pembangun yang lebih baik, anda boleh menggunakan fail parameter.ts untuk menentukan parameter anda:
// Define parameters for the default environment
bedrockChatParams.set("default", {
bedrockRegion: "us-east-1",
allowedIpV4AddressRanges: ["192.168.0.0/16"],
selfSignUpEnabled: true,
});
// Define parameters for additional environments
bedrockChatParams.set("dev", {
bedrockRegion: "us-west-2",
allowedIpV4AddressRanges: ["10.0.0.0/8"],
enableRagReplicas: false, // Cost-saving for dev environment
});
bedrockChatParams.set("prod", {
bedrockRegion: "us-east-1",
allowedIpV4AddressRanges: ["172.16.0.0/12"],
enableLambdaSnapStart: true,
enableRagReplicas: true, // Enhanced availability for production
});
Note
Pengguna sedia ada boleh terus menggunakan cdk.json tanpa sebarang perubahan. Pendekatan parameter.ts disyorkan untuk penempatan baharu atau apabila anda perlu menguruskan pelbagai persekitaran.
Menempatkan Pelbagai Persekitaran
Anda boleh menempatkan pelbagai persekitaran dari kod asas yang sama menggunakan fail parameter.ts dan pilihan -c envName.
Prasyarat
- Tentukan persekitaran anda dalam
parameter.tsseperti yang ditunjukkan di atas - Setiap persekitaran akan mempunyai set sumber sendiri dengan awalan khusus persekitaran
Arahan Penempatan
Untuk menempatkan persekitaran tertentu:
# Deploy the dev environment
npx cdk deploy --all -c envName=dev
# Deploy the prod environment
npx cdk deploy --all -c envName=prod
Jika tiada persekitaran dinyatakan, persekitaran "default" digunakan:
# Deploy the default environment
npx cdk deploy --all
Nota Penting
-
Penamaan Tindanan:
- Tindanan utama untuk setiap persekitaran akan diawali dengan nama persekitaran (cth.,
dev-BedrockChatStack,prod-BedrockChatStack) - Walau bagaimanapun, tindanan bot tersuai (
BrChatKbStack*) dan tindanan penerbitan API (ApiPublishmentStack*) tidak menerima awalan persekitaran kerana ia dicipta secara dinamik semasa masa jalanan
- Tindanan utama untuk setiap persekitaran akan diawali dengan nama persekitaran (cth.,
-
Penamaan Sumber:
- Hanya sesetengah sumber menerima awalan persekitaran dalam nama mereka (cth., jadual
dev_ddb_export,dev-FrontendWebAcl) - Kebanyakan sumber mengekalkan nama asal mereka tetapi diasingkan dengan berada dalam tindanan yang berbeza
- Hanya sesetengah sumber menerima awalan persekitaran dalam nama mereka (cth., jadual
-
Pengenalpastian Persekitaran:
- Semua sumber ditag dengan tag
CDKEnvironmentyang mengandungi nama persekitaran - Anda boleh menggunakan tag ini untuk mengenal pasti persekitaran mana sumber tersebut tergolong
- Contoh:
CDKEnvironment: devatauCDKEnvironment: prod
- Semua sumber ditag dengan tag
-
Penggantian Persekitaran Default: Jika anda menentukan persekitaran "default" dalam
parameter.ts, ia akan menggantikan tetapan dalamcdk.json. Untuk terus menggunakancdk.json, jangan tentukan persekitaran "default" dalamparameter.ts. -
Keperluan Persekitaran: Untuk mencipta persekitaran selain daripada "default", anda mesti menggunakan
parameter.ts. Pilihan-c envNamesahaja tidak mencukupi tanpa definisi persekitaran yang sepadan. -
Pengasingan Sumber: Setiap persekitaran mencipta set sumber sendiri, membolehkan anda mempunyai persekitaran pembangunan, pengujian, dan pengeluaran dalam akaun AWS yang sama tanpa konflik.
Lain-lain
Membuang sumber
Jika menggunakan cli dan CDK, sila gunakan npx cdk destroy. Jika tidak, akses CloudFormation dan kemudian padam BedrockChatStack dan FrontendWafStack secara manual. Sila ambil perhatian bahawa FrontendWafStack berada di rantau us-east-1.
Tetapan Bahasa
Aset ini mengesan bahasa secara automatik menggunakan i18next-browser-languageDetector. Anda boleh menukar bahasa dari menu aplikasi. Sebagai alternatif, anda boleh menggunakan Query String untuk menetapkan bahasa seperti yang ditunjukkan di bawah.
https://example.com?lng=ja
Nyahaktifkan pendaftaran sendiri
Sampel ini mempunyai pendaftaran sendiri diaktifkan secara lalai. Untuk menyahaktifkan pendaftaran sendiri, buka cdk.json dan tukar selfSignUpEnabled kepada false. Jika anda mengkonfigurasi pembekal identiti luaran, nilai ini akan diabaikan dan dinyahaktifkan secara automatik.
Hadkan Domain untuk Alamat E-mel Pendaftaran
Secara lalai, sampel ini tidak menghadkan domain untuk alamat e-mel pendaftaran. Untuk membenarkan pendaftaran hanya dari domain tertentu, buka cdk.json dan tentukan domain sebagai senarai dalam allowedSignUpEmailDomains.
"allowedSignUpEmailDomains": ["example.com"],
Pembekal Identiti Luaran
Sampel ini menyokong pembekal identiti luaran. Buat masa ini kami menyokong Google dan pembekal OIDC tersuai.
WAF Frontend Pilihan
Untuk pengedaran CloudFront, AWS WAF WebACL mesti dibuat di rantau us-east-1. Dalam sesetengah organisasi, penciptaan sumber di luar rantau utama dihadkan oleh polisi. Dalam persekitaran sedemikian, penggunaan CDK boleh gagal apabila cuba menyediakan Frontend WAF di us-east-1.
Untuk menampung sekatan ini, tindanan Frontend WAF adalah pilihan. Apabila dinyahaktifkan, pengedaran CloudFront dikerahkan tanpa WebACL. Ini bermakna anda tidak akan mempunyai kawalan membenarkan/menafikan IP di bahagian depan. Pengesahan dan semua kawalan aplikasi lain terus berfungsi seperti biasa. Ambil perhatian bahawa tetapan ini hanya mempengaruhi Frontend WAF (skop CloudFront); WAF API yang Diterbitkan (serantau) kekal tidak terjejas.
Untuk menyahaktifkan Frontend WAF tetapkan yang berikut dalam parameter.ts (Kaedah Selamat Jenis yang Disyorkan):
bedrockChatParams.set("default", {
enableFrontendWaf: false
});
Atau jika menggunakan cdk/cdk.json warisan tetapkan yang berikut:
"enableFrontendWaf": false
Tambah pengguna baharu ke kumpulan secara automatik
Sampel ini mempunyai kumpulan berikut untuk memberikan kebenaran kepada pengguna:
Jika anda mahu pengguna baharu menyertai kumpulan secara automatik, anda boleh menentukannya dalam cdk.json.
"autoJoinUserGroups": ["CreatingBotAllowed"],
Secara lalai, pengguna baharu akan disertakan ke dalam kumpulan CreatingBotAllowed.
Konfigurasi Replika RAG
enableRagReplicas adalah pilihan dalam cdk.json yang mengawal tetapan replika untuk pangkalan data RAG, khususnya Pangkalan Pengetahuan menggunakan Amazon OpenSearch Serverless.
- Lalai: true
- true: Meningkatkan ketersediaan dengan membolehkan replika tambahan, menjadikannya sesuai untuk persekitaran pengeluaran tetapi meningkatkan kos.
- false: Mengurangkan kos dengan menggunakan replika yang lebih sedikit, menjadikannya sesuai untuk pembangunan dan pengujian.
Ini adalah tetapan peringkat akaun/rantau, mempengaruhi keseluruhan aplikasi dan bukannya bot individu.
Note
Mulai Jun 2024, Amazon OpenSearch Serverless menyokong 0.5 OCU, mengurangkan kos permulaan untuk beban kerja skala kecil. Pengerahan pengeluaran boleh bermula dengan 2 OCU, manakala beban kerja dev/ujian boleh menggunakan 1 OCU. OpenSearch Serverless secara automatik mengskala berdasarkan permintaan beban kerja. Untuk maklumat lanjut, lawati pengumuman.
Konfigurasi Kedai Bot
Ciri kedai bot membolehkan pengguna berkongsi dan menemui bot tersuai. Anda boleh mengkonfigurasi kedai bot melalui tetapan berikut dalam cdk.json:
{
"context": {
"enableBotStore": true,
"enableBotStoreReplicas": false,
"botStoreLanguage": "en"
}
}
- enableBotStore: Mengawal sama ada ciri kedai bot diaktifkan (lalai:
true) - botStoreLanguage: Menetapkan bahasa utama untuk carian dan penemuan bot (lalai:
"en"). Ini mempengaruhi bagaimana bot diindeks dan dicari dalam kedai bot, mengoptimumkan analisis teks untuk bahasa yang ditentukan. - enableBotStoreReplicas: Mengawal sama ada replika tunggu sedia diaktifkan untuk koleksi OpenSearch Serverless yang digunakan oleh kedai bot (lalai:
false). Menetapkannya kepadatruemeningkatkan ketersediaan tetapi meningkatkan kos, manakalafalsemengurangkan kos tetapi mungkin menjejaskan ketersediaan.Penting: Anda tidak boleh mengemaskini sifat ini selepas koleksi sudah dibuat. Jika anda cuba mengubah sifat ini, koleksi akan terus menggunakan nilai asal.
Inferens merentas rantau
Inferens merentas rantau membolehkan Amazon Bedrock menghalakan permintaan inferens model secara dinamik merentasi pelbagai rantau AWS, meningkatkan daya pemprosesan dan ketahanan semasa tempoh permintaan tinggi. Untuk mengkonfigurasi, edit cdk.json.
"enableBedrockCrossRegionInference": true
Lambda SnapStart
Lambda SnapStart meningkatkan masa permulaan sejuk untuk fungsi Lambda, menyediakan masa tindak balas yang lebih pantas untuk pengalaman pengguna yang lebih baik. Sebaliknya, untuk fungsi Python, terdapat caj bergantung pada saiz cache dan tidak tersedia di beberapa rantau pada masa ini. Untuk menyahaktifkan SnapStart, edit cdk.json.
"enableLambdaSnapStart": false
Konfigurasi Domain Tersuai
Anda boleh mengkonfigurasi domain tersuai untuk pengedaran CloudFront dengan menetapkan parameter berikut dalam cdk.json:
{
"alternateDomainName": "chat.example.com",
"hostedZoneId": "Z0123456789ABCDEF"
}
alternateDomainName: Nama domain tersuai untuk aplikasi perbualan anda (cth., chat.example.com)hostedZoneId: ID zon hos Route 53 anda di mana rekod DNS akan dibuat
Apabila parameter ini disediakan, pengerahan akan secara automatik:
- Mencipta sijil ACM dengan pengesahan DNS di rantau us-east-1
- Mencipta rekod DNS yang diperlukan dalam zon hos Route 53 anda
- Mengkonfigurasi CloudFront untuk menggunakan domain tersuai anda
Note
Domain mesti diurus oleh Route 53 dalam akaun AWS anda. ID zon hos boleh didapati dalam konsol Route 53.
Konfigurasi negara yang dibenarkan (sekatan geo)
Anda boleh menyekat akses ke Bedrock-Chat berdasarkan negara dari mana pelanggan mengaksesnya.
Gunakan parameter allowedCountries dalam cdk.json yang mengambil senarai Kod Negara ISO-3166.
Contohnya, perniagaan yang berpangkalan di New Zealand mungkin memutuskan bahawa hanya alamat IP dari New Zealand (NZ) dan Australia (AU) boleh mengakses portal dan semua orang lain harus dinafikan akses.
Untuk mengkonfigurasi tingkah laku ini gunakan tetapan berikut dalam cdk.json:
{
"allowedCountries": ["NZ", "AU"]
}
Atau, menggunakan parameter.ts (Kaedah Selamat Jenis yang Disyorkan):
// Define parameters for the default environment
bedrockChatParams.set("default", {
allowedCountries: ["NZ", "AU"],
});
Nyahaktifkan sokongan IPv6
Frontend mendapat kedua-dua alamat IP dan IPv6 secara lalai. Dalam beberapa keadaan yang jarang berlaku, anda mungkin perlu menyahaktifkan sokongan IPv6 secara eksplisit. Untuk melakukan ini, tetapkan parameter berikut dalam parameter.ts atau serupa dalam cdk.json:
"enableFrontendIpv6": false
Jika dibiarkan tidak ditetapkan, sokongan IPv6 akan diaktifkan secara lalai.
Pembangunan Tempatan
Lihat LOCAL DEVELOPMENT.
Sumbangan
Terima kasih kerana mempertimbangkan untuk menyumbang kepada repositori ini! Kami mengalu-alukan pembetulan pepijat, terjemahan bahasa (i18n), peningkatan ciri, alat ejen, dan penambahbaikan lain.
Untuk peningkatan ciri dan penambahbaikan lain, sebelum membuat Pull Request, kami sangat menghargai jika anda boleh membuat Isu Permintaan Ciri untuk membincangkan pendekatan pelaksanaan dan butiran. Untuk pembetulan pepijat dan terjemahan bahasa (i18n), teruskan dengan membuat Pull Request secara langsung.
Sila juga lihat garis panduan berikut sebelum menyumbang:
Kenalan
🏆 Penyumbang Penting
Penyumbang
Lesen
Perpustakaan ini dilesenkan di bawah Lesen MIT-0. Sila rujuk fail LESEN.

