README_vi-VN.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

Một nền tảng AI tạo sinh đa ngôn ngữ được hỗ trợ bởi Amazon Bedrock. Hỗ trợ trò chuyện, bot tùy chỉnh với kiến thức (RAG), chia sẻ bot thông qua cửa hàng bot và tự động hóa tác vụ bằng tác nhân.

Warning

Đã phát hành V3. Để cập nhật, vui lòng xem kỹ hướng dẫn di chuyển. Nếu không cẩn thận, CÁC BOT TỪ V2 SẼ TRỞ NÊN KHÔNG THỂ SỬ DỤNG ĐƯỢC.

Cá nhân hóa Bot / Cửa hàng Bot

Thêm hướng dẫn và kiến thức của riêng bạn (còn gọi là RAG). Bot có thể được chia sẻ giữa người dùng ứng dụng thông qua thị trường cửa hàng bot. Bot tùy chỉnh cũng có thể được xuất bản dưới dạng API độc lập (Xem chi tiết).

Ảnh chụp màn hình

Bạn cũng có thể nhập Amazon Bedrock's KnowledgeBase hiện có.

Important

Vì lý do quản trị, chỉ những người dùng được phép mới có thể tạo bot tùy chỉnh. Để cho phép tạo bot tùy chỉnh, người dùng phải là thành viên của nhóm có tên CreatingBotAllowed, có thể được thiết lập thông qua bảng điều khiển quản lý > Amazon Cognito User pools hoặc aws cli. Lưu ý rằng id của user pool có thể được tham chiếu bằng cách truy cập CloudFormation > BedrockChatStack > Outputs > AuthUserPoolIdxxxx.

Tính năng quản trị

Quản lý API, Đánh dấu bot là thiết yếu, Phân tích việc sử dụng bot. chi tiết

Ảnh chụp màn hình

)

Tác nhân

Bằng cách sử dụng chức năng Tác nhân, chatbot của bạn có thể tự động xử lý các tác vụ phức tạp hơn. Ví dụ, để trả lời câu hỏi của người dùng, Tác nhân có thể truy xuất thông tin cần thiết từ các công cụ bên ngoài hoặc chia nhỏ tác vụ thành nhiều bước để xử lý.

Ảnh chụp màn hình

🚀 Triển khai Siêu đơn giản

  • Trong vùng us-east-1, mở Bedrock Model access > Manage model access > Đánh dấu tất cả các model bạn muốn sử dụng rồi Save changes.
Ảnh chụp màn hình

Các vùng được hỗ trợ

Vui lòng đảm bảo rằng bạn triển khai Bedrock Chat trong một vùng nơi OpenSearch Serverless và API Ingestion khả dụng, nếu bạn muốn sử dụng bot và tạo cơ sở kiến thức (OpenSearch Serverless là lựa chọn mặc định). Tính đến tháng 8 năm 2025, các vùng sau được hỗ trợ: 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

Đối với tham số bedrock-region, bạn cần chọn một vùng nơi Bedrock khả dụng.

  • Mở CloudShell tại vùng bạn muốn triển khai
  • Chạy triển khai bằng các lệnh sau. Nếu bạn muốn chỉ định phiên bản để triển khai hoặc cần áp dụng chính sách bảo mật, vui lòng chỉ định các tham số thích hợp từ Tham số Tùy chọn.
git clone https://github.com/aws-samples/bedrock-chat.git
cd bedrock-chat
chmod +x bin.sh
./bin.sh
  • Bạn sẽ được hỏi liệu bạn là người dùng mới hay đang sử dụng v3. Nếu bạn không phải là người dùng tiếp tục từ v0, vui lòng nhập y.

Tham số Tùy chọn

Bạn có thể chỉ định các tham số sau trong quá trình triển khai để tăng cường bảo mật và tùy chỉnh:

  • --disable-self-register: Vô hiệu hóa tự đăng ký (mặc định: được bật). Nếu cờ này được đặt, bạn sẽ cần tạo tất cả người dùng trên cognito và nó sẽ không cho phép người dùng tự đăng ký tài khoản.
  • --enable-lambda-snapstart: Bật Lambda SnapStart (mặc định: tắt). Nếu cờ này được đặt, cải thiện thời gian khởi động lạnh cho các hàm Lambda, cung cấp thời gian phản hồi nhanh hơn để trải nghiệm người dùng tốt hơn.
  • --ipv4-ranges: Danh sách các dải IPv4 được phép, phân tách bằng dấu phẩy. (mặc định: cho phép tất cả địa chỉ ipv4)
  • --ipv6-ranges: Danh sách các dải IPv6 được phép, phân tách bằng dấu phẩy. (mặc định: cho phép tất cả địa chỉ ipv6)
  • --disable-ipv6: Vô hiệu hóa kết nối qua IPv6. (mặc định: được bật)
  • --allowed-signup-email-domains: Danh sách tên miền email được phép đăng ký, phân tách bằng dấu phẩy. (mặc định: không giới hạn tên miền)
  • --bedrock-region: Xác định vùng nơi bedrock khả dụng. (mặc định: us-east-1)
  • --repo-url: Repo tùy chỉnh của Bedrock Chat để triển khai, nếu đã fork hoặc kiểm soát nguồn tùy chỉnh. (mặc định: https://github.com/aws-samples/bedrock-chat.git)
  • --version: Phiên bản của Bedrock Chat để triển khai. (mặc định: phiên bản mới nhất trong quá trình phát triển)
  • --cdk-json-override: Bạn có thể ghi đè bất kỳ giá trị ngữ cảnh CDK nào trong quá trình triển khai bằng cách sử dụng khối JSON ghi đè. Điều này cho phép bạn sửa đổi cấu hình mà không cần chỉnh sửa trực tiếp tệp cdk.json.

Ví dụ sử dụng:

./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 ghi đè phải tuân theo cùng cấu trúc như cdk.json. Bạn có thể ghi đè bất kỳ giá trị ngữ cảnh nào bao gồm:

  • selfSignUpEnabled
  • enableLambdaSnapStart
  • allowedIpV4AddressRanges
  • allowedIpV6AddressRanges
  • allowedCountries
  • allowedSignUpEmailDomains
  • bedrockRegion
  • enableRagReplicas
  • enableBedrockCrossRegionInference
  • globalAvailableModels: chấp nhận danh sách ID model để bật. Giá trị mặc định là một danh sách trống, điều này bật tất cả các model.
  • logoPath: đường dẫn tương đối đến tài sản logo trong thư mục public/ của frontend xuất hiện ở đầu ngăn điều hướng.
  • Và các giá trị ngữ cảnh khác được định nghĩa trong cdk.json

Note

Các giá trị ghi đè sẽ được hợp nhất với cấu hình cdk.json hiện có trong thời gian triển khai trong AWS code build. Các giá trị được chỉ định trong phần ghi đè sẽ được ưu tiên hơn các giá trị trong cdk.json.

Ví dụ lệnh với tham số:

./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"
  • Sau khoảng 35 phút, bạn sẽ nhận được đầu ra sau đây, mà bạn có thể truy cập từ trình duyệt của mình
Frontend URL: https://xxxxxxxxx.cloudfront.net

Màn hình đăng ký sẽ xuất hiện như hình trên, nơi bạn có thể đăng ký email và đăng nhập.

Important

Nếu không đặt tham số tùy chọn, phương thức triển khai này cho phép bất kỳ ai biết URL đều có thể đăng ký. Đối với việc sử dụng trong sản xuất, chúng tôi đặc biệt khuyến nghị thêm giới hạn địa chỉ IP và vô hiệu hóa tự đăng ký để giảm thiểu rủi ro bảo mật (bạn có thể xác định allowed-signup-email-domains để giới hạn người dùng sao cho chỉ địa chỉ email từ tên miền công ty của bạn mới có thể đăng ký). Sử dụng cả ipv4-ranges và ipv6-ranges để giới hạn địa chỉ IP, và vô hiệu hóa tự đăng ký bằng cách sử dụng disable-self-register khi thực thi ./bin.

Tip

Nếu Frontend URL không xuất hiện hoặc Bedrock Chat không hoạt động đúng cách, có thể có vấn đề với phiên bản mới nhất. Trong trường hợp này, vui lòng thêm --version "v3.0.0" vào các tham số và thử triển khai lại.

Kiến trúc

Đây là một kiến trúc được xây dựng trên các dịch vụ được quản lý của AWS, loại bỏ nhu cầu quản lý cơ sở hạ tầng. Sử dụng Amazon Bedrock, không cần phải giao tiếp với các API bên ngoài AWS. Điều này cho phép triển khai các ứng dụng có khả năng mở rộng, đáng tin cậy và bảo mật.

Triển khai bằng CDK

Triển khai Super-easy sử dụng AWS CodeBuild để thực hiện triển khai bằng CDK nội bộ. Phần này mô tả quy trình triển khai trực tiếp với CDK.

  • Vui lòng chuẩn bị môi trường UNIX, Docker và Node.js.

Important

Nếu không có đủ dung lượng lưu trữ trong môi trường cục bộ trong quá trình triển khai, việc khởi tạo CDK có thể gặp lỗi. Chúng tôi khuyến nghị mở rộng kích thước ổ đĩa của instance trước khi triển khai.

  • Clone repository này
git clone https://github.com/aws-samples/bedrock-chat
  • Cài đặt các gói npm
cd bedrock-chat
cd cdk
npm ci
  • Nếu cần, chỉnh sửa các mục sau trong cdk.json.

    • bedrockRegion: Khu vực có sẵn Bedrock. LƯU Ý: Bedrock KHÔNG hỗ trợ tất cả các khu vực hiện tại.
    • allowedIpV4AddressRanges, allowedIpV6AddressRanges: Dải địa chỉ IP được phép.
    • enableLambdaSnapStart: Mặc định là true. Đặt thành false nếu triển khai ở khu vực không hỗ trợ Lambda SnapStart cho các hàm Python.
    • globalAvailableModels: Mặc định là tất cả. Nếu được đặt (danh sách ID model), cho phép kiểm soát toàn cục các model xuất hiện trong menu thả xuống trên các cuộc trò chuyện cho tất cả người dùng và trong quá trình tạo bot trong ứng dụng Bedrock Chat.
    • logoPath: Đường dẫn tương đối trong frontend/public trỏ đến hình ảnh hiển thị ở đầu ngăn ứng dụng. Các ID model sau được hỗ trợ (hãy đảm bảo chúng cũng được kích hoạt trong bảng điều khiển Bedrock dưới mục Model access trong khu vực triển khai của bạn):
  • 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

Danh sách đầy đủ có thể được tìm thấy trong index.ts.

  • Trước khi triển khai CDK, bạn cần thực hiện Bootstrap một lần cho khu vực bạn đang triển khai.
npx cdk bootstrap
  • Triển khai dự án mẫu này
npx cdk deploy --require-approval never --all
  • Bạn sẽ nhận được kết quả tương tự như sau. URL của ứng dụng web sẽ được hiển thị trong BedrockChatStack.FrontendURL, vui lòng truy cập từ trình duyệt của bạn.
  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

Định nghĩa Tham số

Bạn có thể định nghĩa tham số cho việc triển khai theo hai cách: sử dụng cdk.json hoặc sử dụng tệp parameter.ts an toàn về kiểu.

Sử dụng cdk.json (Phương pháp Truyền thống)

Cách truyền thống để cấu hình tham số là chỉnh sửa tệp cdk.json. Cách tiếp cận này đơn giản nhưng thiếu kiểm tra kiểu:

{
  "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"
    ],
  }
}

Sử dụng parameter.ts (Phương pháp An toàn về Kiểu được Khuyến nghị)

Để có trải nghiệm phát triển tốt hơn và an toàn về kiểu, bạn có thể sử dụng tệp parameter.ts để định nghĩa tham số:

// Định nghĩa tham số cho môi trường mặc định
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"
    ],
});

// Định nghĩa tham số cho các môi trường bổ sung
bedrockChatParams.set("dev", {
  bedrockRegion: "us-west-2",
  allowedIpV4AddressRanges: ["10.0.0.0/8"],
  enableRagReplicas: false, // Tiết kiệm chi phí cho môi trường dev
  enableBotStoreReplicas: false, // Tiết kiệm chi phí cho môi trường dev
});

bedrockChatParams.set("prod", {
  bedrockRegion: "us-east-1",
  allowedIpV4AddressRanges: ["172.16.0.0/12"],
  enableLambdaSnapStart: true,
  enableRagReplicas: true, // Tăng cường tính khả dụng cho production
  enableBotStoreReplicas: true, // Tăng cường tính khả dụng cho production
});

Note

Người dùng hiện tại có thể tiếp tục sử dụng cdk.json mà không cần thay đổi. Cách tiếp cận parameter.ts được khuyến nghị cho các triển khai mới hoặc khi bạn cần quản lý nhiều môi trường.

Triển khai Nhiều Môi trường

Bạn có thể triển khai nhiều môi trường từ cùng một codebase bằng cách sử dụng tệp parameter.ts và tùy chọn -c envName.

Điều kiện tiên quyết

  1. Định nghĩa môi trường của bạn trong parameter.ts như đã hiển thị ở trên
  2. Mỗi môi trường sẽ có bộ tài nguyên riêng với tiền tố cụ thể cho môi trường

Lệnh Triển khai

Để triển khai một môi trường cụ thể:

# Triển khai môi trường dev
npx cdk deploy --all -c envName=dev

# Triển khai môi trường prod
npx cdk deploy --all -c envName=prod

Nếu không chỉ định môi trường, môi trường "default" sẽ được sử dụng:

# Triển khai môi trường mặc định
npx cdk deploy --all

Lưu ý Quan trọng

  1. Đặt tên Stack:

    • Các stack chính cho mỗi môi trường sẽ có tiền tố là tên môi trường (ví dụ: dev-BedrockChatStack, prod-BedrockChatStack)
    • Tuy nhiên, các stack bot tùy chỉnh (BrChatKbStack*) và stack phát hành API (ApiPublishmentStack*) không nhận tiền tố môi trường vì chúng được tạo động trong thời gian chạy
  2. Đặt tên Tài nguyên:

    • Chỉ một số tài nguyên nhận tiền tố môi trường trong tên của chúng (ví dụ: bảng dev_ddb_export, dev-FrontendWebAcl)
    • Hầu hết các tài nguyên giữ nguyên tên gốc nhưng được cách ly bằng cách nằm trong các stack khác nhau
  3. Nhận dạng Môi trường:

    • Tất cả các tài nguyên được gắn thẻ với thẻ CDKEnvironment chứa tên môi trường
    • Bạn có thể sử dụng thẻ này để xác định tài nguyên thuộc môi trường nào
    • Ví dụ: CDKEnvironment: dev hoặc CDKEnvironment: prod
  4. Ghi đè Môi trường Mặc định: Nếu bạn định nghĩa môi trường "default" trong parameter.ts, nó sẽ ghi đè cài đặt trong cdk.json. Để tiếp tục sử dụng cdk.json, đừng định nghĩa môi trường "default" trong parameter.ts.

  5. Yêu cầu Môi trường: Để tạo môi trường khác ngoài "default", bạn phải sử dụng parameter.ts. Chỉ tùy chọn -c envName không đủ nếu không có định nghĩa môi trường tương ứng.

  6. Cách ly Tài nguyên: Mỗi môi trường tạo bộ tài nguyên riêng, cho phép bạn có môi trường phát triển, kiểm thử và sản xuất trong cùng một tài khoản AWS mà không có xung đột.

Khác

Bạn có thể định nghĩa các tham số cho việc triển khai theo hai cách: sử dụng cdk.json hoặc sử dụng file parameter.ts với kiểu dữ liệu an toàn.

Sử dụng cdk.json (Phương pháp truyền thống)

Cách truyền thống để cấu hình tham số là chỉnh sửa file cdk.json. Cách tiếp cận này đơn giản nhưng thiếu kiểm tra kiểu:

{
  "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
  }
}

Sử dụng parameter.ts (Phương pháp khuyến nghị với kiểu an toàn)

Để có kiểu dữ liệu an toàn hơn và trải nghiệm phát triển tốt hơn, bạn có thể sử dụng file parameter.ts để định nghĩa các tham số:

// 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

Người dùng hiện tại có thể tiếp tục sử dụng cdk.json mà không cần thay đổi gì. Cách tiếp cận parameter.ts được khuyến nghị cho các triển khai mới hoặc khi bạn cần quản lý nhiều môi trường.

Triển khai nhiều môi trường

Bạn có thể triển khai nhiều môi trường từ cùng một mã nguồn bằng cách sử dụng file parameter.ts và tùy chọn -c envName.

Điều kiện tiên quyết

  1. Định nghĩa các môi trường của bạn trong parameter.ts như đã hiển thị ở trên
  2. Mỗi môi trường sẽ có bộ tài nguyên riêng với tiền tố đặc thù cho môi trường đó

Lệnh triển khai

Để triển khai một môi trường cụ thể:

# Deploy the dev environment
npx cdk deploy --all -c envName=dev

# Deploy the prod environment
npx cdk deploy --all -c envName=prod

Nếu không chỉ định môi trường, môi trường "default" sẽ được sử dụng:

# Deploy the default environment
npx cdk deploy --all

Lưu ý quan trọng

  1. Đặt tên Stack:

    • Các stack chính cho mỗi môi trường sẽ có tiền tố là tên môi trường (ví dụ: dev-BedrockChatStack, prod-BedrockChatStack)
    • Tuy nhiên, các stack bot tùy chỉnh (BrChatKbStack*) và stack xuất bản API (ApiPublishmentStack*) không nhận tiền tố môi trường vì chúng được tạo động trong thời gian chạy
  2. Đặt tên tài nguyên:

    • Chỉ một số tài nguyên nhận tiền tố môi trường trong tên của chúng (ví dụ: bảng dev_ddb_export, dev-FrontendWebAcl)
    • Hầu hết các tài nguyên giữ nguyên tên gốc nhưng được cô lập bằng cách nằm trong các stack khác nhau
  3. Nhận dạng môi trường:

    • Tất cả tài nguyên được gắn thẻ với tag CDKEnvironment chứa tên môi trường
    • Bạn có thể sử dụng tag này để xác định tài nguyên thuộc môi trường nào
    • Ví dụ: CDKEnvironment: dev hoặc CDKEnvironment: prod
  4. Ghi đè môi trường mặc định: Nếu bạn định nghĩa môi trường "default" trong parameter.ts, nó sẽ ghi đè các cài đặt trong cdk.json. Để tiếp tục sử dụng cdk.json, đừng định nghĩa môi trường "default" trong parameter.ts.

  5. Yêu cầu môi trường: Để tạo các môi trường khác ngoài "default", bạn phải sử dụng parameter.ts. Chỉ sử dụng tùy chọn -c envName không đủ nếu không có định nghĩa môi trường tương ứng.

  6. Cô lập tài nguyên: Mỗi môi trường tạo bộ tài nguyên riêng của nó, cho phép bạn có các môi trường phát triển, kiểm thử và sản xuất trong cùng một tài khoản AWS mà không xung đột.

Khác

Xóa tài nguyên

Nếu sử dụng cli và CDK, vui lòng chạy npx cdk destroy. Nếu không, truy cập CloudFormation và xóa thủ công BedrockChatStackFrontendWafStack. Lưu ý rằng FrontendWafStack nằm ở region us-east-1.

Cài đặt ngôn ngữ

Tài nguyên này tự động phát hiện ngôn ngữ bằng i18next-browser-languageDetector. Bạn có thể chuyển đổi ngôn ngữ từ menu ứng dụng. Ngoài ra, bạn có thể sử dụng Query String để đặt ngôn ngữ như dưới đây.

https://example.com?lng=ja

Tắt tự đăng ký

Mẫu này mặc định cho phép tự đăng ký. Để tắt tự đăng ký, mở cdk.json và chuyển selfSignUpEnabled thành false. Nếu bạn cấu hình nhà cung cấp định danh bên ngoài, giá trị này sẽ bị bỏ qua và tự động tắt.

Giới hạn tên miền cho địa chỉ email đăng ký

Mặc định, mẫu này không giới hạn tên miền cho địa chỉ email đăng ký. Để chỉ cho phép đăng ký từ các tên miền cụ thể, mở cdk.json và chỉ định tên miền dưới dạng danh sách trong allowedSignUpEmailDomains.

"allowedSignUpEmailDomains": ["example.com"],

Nhà cung cấp định danh bên ngoài

Mẫu này hỗ trợ nhà cung cấp định danh bên ngoài. Hiện tại chúng tôi hỗ trợ Googlenhà cung cấp OIDC tùy chỉnh.

WAF Frontend tùy chọn

Đối với phân phối CloudFront, WebACL của AWS WAF phải được tạo ở vùng us-east-1. Trong một số tổ chức, việc tạo tài nguyên bên ngoài vùng chính bị hạn chế bởi chính sách. Trong môi trường như vậy, việc triển khai CDK có thể thất bại khi cố gắng cung cấp Frontend WAF ở us-east-1.

Để phù hợp với những hạn chế này, stack Frontend WAF là tùy chọn. Khi tắt, phân phối CloudFront được triển khai mà không có WebACL. Điều này có nghĩa là bạn sẽ không có kiểm soát cho phép/từ chối IP ở frontend edge. Xác thực và tất cả các kiểm soát ứng dụng khác tiếp tục hoạt động bình thường. Lưu ý rằng cài đặt này chỉ ảnh hưởng đến Frontend WAF (phạm vi CloudFront); WAF API đã xuất bản (khu vực) không bị ảnh hưởng.

Để tắt Frontend WAF, đặt như sau trong parameter.ts (Phương pháp an toàn kiểu được khuyến nghị):

bedrockChatParams.set("default", {
  enableFrontendWaf: false
});

Hoặc nếu sử dụng cdk/cdk.json cũ, đặt như sau:

"enableFrontendWaf": false

Tự động thêm người dùng mới vào nhóm

Mẫu này có các nhóm sau để cấp quyền cho người dùng:

Nếu bạn muốn người dùng mới tự động tham gia nhóm, bạn có thể chỉ định chúng trong cdk.json.

"autoJoinUserGroups": ["CreatingBotAllowed"],

Mặc định, người dùng mới sẽ được thêm vào nhóm CreatingBotAllowed.

Cấu hình RAG Replicas

enableRagReplicas là một tùy chọn trong cdk.json kiểm soát cài đặt bản sao cho cơ sở dữ liệu RAG, cụ thể là Knowledge Bases sử dụng Amazon OpenSearch Serverless.

  • Mặc định: true
  • true: Tăng cường khả năng sẵn sàng bằng cách bật thêm bản sao, phù hợp cho môi trường sản xuất nhưng tăng chi phí.
  • false: Giảm chi phí bằng cách sử dụng ít bản sao hơn, phù hợp cho phát triển và kiểm thử.

Đây là cài đặt cấp tài khoản/vùng, ảnh hưởng đến toàn bộ ứng dụng thay vì từng bot riêng lẻ.

Note

Kể từ tháng 6 năm 2024, Amazon OpenSearch Serverless hỗ trợ 0.5 OCU, giảm chi phí ban đầu cho khối lượng công việc quy mô nhỏ. Triển khai sản xuất có thể bắt đầu với 2 OCU, trong khi khối lượng công việc dev/test có thể sử dụng 1 OCU. OpenSearch Serverless tự động mở rộng dựa trên nhu cầu khối lượng công việc. Để biết thêm chi tiết, hãy truy cập thông báo.

Cấu hình Bot Store

Tính năng bot store cho phép người dùng chia sẻ và khám phá các bot tùy chỉnh. Bạn có thể cấu hình bot store thông qua các cài đặt sau trong cdk.json:

{
  "context": {
    "enableBotStore": true,
    "enableBotStoreReplicas": false,
    "botStoreLanguage": "en"
  }
}
  • enableBotStore: Kiểm soát việc bật tính năng bot store (mặc định: true)
  • botStoreLanguage: Đặt ngôn ngữ chính cho tìm kiếm và khám phá bot (mặc định: "en"). Điều này ảnh hưởng đến cách bot được lập chỉ mục và tìm kiếm trong bot store, tối ưu hóa phân tích văn bản cho ngôn ngữ được chỉ định.
  • enableBotStoreReplicas: Kiểm soát việc bật bản sao dự phòng cho bộ sưu tập OpenSearch Serverless được sử dụng bởi bot store (mặc định: false). Đặt thành true cải thiện khả năng sẵn sàng nhưng tăng chi phí, trong khi false giảm chi phí nhưng có thể ảnh hưởng đến khả năng sẵn sàng.

    Quan trọng: Bạn không thể cập nhật thuộc tính này sau khi bộ sưu tập đã được tạo. Nếu bạn cố gắng sửa đổi thuộc tính này, bộ sưu tập sẽ tiếp tục sử dụng giá trị ban đầu.

Suy luận đa vùng

Suy luận đa vùng cho phép Amazon Bedrock tự động định tuyến các yêu cầu suy luận mô hình qua nhiều vùng AWS, tăng cường thông lượng và khả năng phục hồi trong thời kỳ cao điểm. Để cấu hình, chỉnh sửa cdk.json.

"enableBedrockCrossRegionInference": true

Lambda SnapStart

Lambda SnapStart cải thiện thời gian khởi động lạnh cho các hàm Lambda, cung cấp thời gian phản hồi nhanh hơn để trải nghiệm người dùng tốt hơn. Mặt khác, đối với các hàm Python, có phí tùy thuộc vào kích thước bộ nhớ cachehiện không khả dụng ở một số vùng. Để tắt SnapStart, chỉnh sửa cdk.json.

"enableLambdaSnapStart": false

Cấu hình tên miền tùy chỉnh

Bạn có thể cấu hình tên miền tùy chỉnh cho phân phối CloudFront bằng cách đặt các tham số sau trong cdk.json:

{
  "alternateDomainName": "chat.example.com",
  "hostedZoneId": "Z0123456789ABCDEF"
}
  • alternateDomainName: Tên miền tùy chỉnh cho ứng dụng chat của bạn (ví dụ: chat.example.com)
  • hostedZoneId: ID của hosted zone Route 53 nơi các bản ghi tên miền sẽ được tạo

Khi các tham số này được cung cấp, việc triển khai sẽ tự động:

  • Tạo chứng chỉ ACM với xác thực DNS trong vùng us-east-1
  • Tạo các bản ghi DNS cần thiết trong hosted zone Route 53 của bạn
  • Cấu hình CloudFront để sử dụng tên miền tùy chỉnh của bạn

Note

Tên miền phải được quản lý bởi Route 53 trong tài khoản AWS của bạn. ID hosted zone có thể được tìm thấy trong bảng điều khiển Route 53.

Cấu hình quốc gia được phép (giới hạn địa lý)

Bạn có thể hạn chế quyền truy cập vào Bedrock-Chat dựa trên quốc gia mà máy khách đang truy cập từ đó. Sử dụng tham số allowedCountries trong cdk.json nhận danh sách Mã quốc gia ISO-3166. Ví dụ, một doanh nghiệp có trụ sở tại New Zealand có thể quyết định rằng chỉ các địa chỉ IP từ New Zealand (NZ) và Australia (AU) mới có thể truy cập cổng thông tin và tất cả những người khác sẽ bị từ chối truy cập. Để cấu hình hành vi này, sử dụng cài đặt sau trong cdk.json:

{
  "allowedCountries": ["NZ", "AU"]
}

Hoặc, sử dụng parameter.ts (Phương pháp an toàn kiểu được khuyến nghị):

// Định nghĩa tham số cho môi trường mặc định
bedrockChatParams.set("default", {
  allowedCountries: ["NZ", "AU"],
});

Tắt hỗ trợ IPv6

Frontend mặc định nhận cả địa chỉ IP và IPv6. Trong một số trường hợp hiếm hoi, bạn có thể cần tắt hỗ trợ IPv6 một cách rõ ràng. Để làm điều này, đặt tham số sau trong parameter.ts hoặc tương tự trong cdk.json:

"enableFrontendIpv6": false

Nếu không được đặt, hỗ trợ IPv6 sẽ được bật theo mặc định.

Phát triển cục bộ

Xem LOCAL DEVELOPMENT.

Đóng góp

Cảm ơn bạn đã cân nhắc đóng góp cho kho lưu trữ này! Chúng tôi hoan nghênh các bản sửa lỗi, bản dịch ngôn ngữ (i18n), cải tiến tính năng, công cụ agent, và các cải tiến khác.

Đối với cải tiến tính năng và các cải tiến khác, trước khi tạo Pull Request, chúng tôi rất cảm kích nếu bạn có thể tạo một Issue Yêu cầu Tính năng để thảo luận về cách tiếp cận và chi tiết triển khai. Đối với bản sửa lỗi và bản dịch ngôn ngữ (i18n), hãy tiến hành tạo Pull Request trực tiếp.

Vui lòng xem xét các hướng dẫn

Liên hệ

🏆 Những Người Đóng Góp Tiêu Biểu

Những người đóng góp

bedrock chat contributors

Giấy phép

Thư viện này được cấp phép theo Giấy phép MIT-0. Xem tệp LICENSE.