本專案提供一組以 大型語言模型(LLM) 為核心的人生模擬遊戲 API。 遊戲透過多個 API,逐步生成玩家背景、人生事件、事件結果與最終評分,營造沉浸式的互動體驗。
系統於遊戲開始時建立一組 session_id,並將該局遊戲的基本狀態與隨機環境設定儲存於 DynamoDB 中。
後續所有 API 呼叫皆透過 session_id 識別同一局人生模擬流程。
API 文件已移至 Lambda 目錄:src/lambda/API.md。
資料庫 Schema 文件已移至 Lambda 目錄:src/lambda/DATABASE_SCHEMA.md。
當你要讓他人透過網址讀取 S3 上的檔案(例如前端檔案或 zip),請檢查以下三點:
- S3 Console -> 選擇你的 Bucket
- Permissions -> Block public access settings
- 關閉「Block all public access」並儲存
將 <YOUR_BUCKET> 改成你的 bucket 名稱:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<YOUR_BUCKET>/*"
}
]
}- SSE-S3(預設)可以公開讀取
- SSE-KMS 會導致 AccessDenied(需要
kms:Decrypt)
若是 SSE-KMS,請重新上傳並改用 SSE-S3。
./scripts/deploy-frontend.sh <s3-bucket> <s3-prefix> [region]
./scripts/deploy-archive.sh <s3-bucket> <s3-prefix> [region]前置需求:已安裝 Docker 並啟動。
sam build -t src/template/template.yamlsam local start-api -t src/template/template.yaml --env-vars ./src/template/env.json如果遇到 Docker 拉不到映像檔,可以先拉基底映像:
docker pull public.ecr.aws/lambda/nodejs:18-arm64前置需求:已設定 AWS CLI/認證與 SAM CLI。
sam build -t src/template/template.yaml./scripts/package-lambda.sh <s3-bucket> <s3-key-prefix> [region]sam deploy --guided部署完成後,在 CloudFormation Outputs 取得 ApiBaseUrl,
或用以下指令查詢:
aws cloudformation describe-stacks \
--stack-name bedrock-workshop-stack \
--query "Stacks[0].Outputs"本機:使用 http://127.0.0.1:3000。部署:請改用 CloudFormation 輸出的 ApiBaseUrl。
curl -X POST http://127.0.0.1:3000/generate-background \
-H "Content-Type: application/json" \
-d '{"knowledge_base_id":"your-knowledge-base-id"}'curl -X POST http://127.0.0.1:3000/generate-story \
-H "Content-Type: application/json" \
-d '{"session_id":"session_abc123"}'curl -X POST http://127.0.0.1:3000/resolve-event \
-H "Content-Type: application/json" \
-d '{"session_id":"session_abc123","event":{},"selected_option":"A"}'curl -X POST http://127.0.0.1:3000/generate-result \
-H "Content-Type: application/json" \
-d '{"session_id":"session_abc123"}'