Skip to content

CITE-RAteam/chatbot-back

Repository files navigation

TUT Chatbot

dynamodbにデータを新規登録する際の形式

dynamodbに登録する際は以下のjson形式を使用して下さい

{
  "question_id": 1000, # int形式
  "next_choices": [ # 必須項目では無いので、あってもなくても構いません。
    {
      "choice_id": 2000,
      "choice_text": "hogeの方法" # 提示する選択肢のテキスト
    },
    {
      "choice_id": 2001,
      "choice_text": "barの方法"
    }
  ],
  "free_response": "fugaの方法はこちらです。" # 問題の解決方法や、選択肢の説明
}

setup aws-cli

  1. aws-cliをインストールする
  2. aws configureを実行しておく
  3. AWSアカウントを発行する
  4. AWSアクセスキーをIAMコンソールから発行する
  5. 発行した情報を、aws configureにコピペする
    • この順番をとることで、セキュリティリスクとなるクレデンシャル情報の流出を極限まで抑えることができる

注意点
複数のIAMユーザーを使い分けるには、プロファイルを設定する必要が有ります。
ここではその方法について触れないので、必要な場合は自力で調べて下さい。

setup github actions

  1. S3にデプロイ用のバケットを作成する。
  2. github actionsの為のIDプロバイダを設定する
  3. IDプロバイダ用にPolicyを作成する。(作成例は下記の通り)
  4. Secretを必要な分だけ記述する
    • AWS_S3_BUCKET: 先程作成したバケット名をいれる
    • AWS_ACCOUNT_ID: AWSのデプロイ用アカウントID
    • AWS_GITHUB_OIDC_ROLE_NAME: 作成したロール名
    • OPENAI_API_KEY: OpenAIのAPIキー。現時点では機能が未実装

IDプロバイダに付与するPolicyの一例

ここでは多くの権限が付与されていますが、本来は必要最低限の権限を付与するよう、注意が必要です。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "dynamodb:*",
        "cloudformation:*",
        "s3:*",
        "lambda:*",
        "apigateway:*",
        "iam:CreateRole",
        "iam:DeleteRole",
        "iam:GetRole",
        "iam:PassRole",
        "iam:DeleteRolePolicy",
        "iam:GetRolePolicy",
        "iam:AttachRolePolicy",
        "iam:DetachRolePolicy",
        "iam:PutRolePolicy",
        "iam:TagRole"
      ],
      "Resource": "*"
    }
  ]
}

Local Debug 方法

set environment

.open_ai_api_keyファイルを作成し、OpenAIのAPIキーを追加
.pr_numファイルを作成し、任意のPR番号かmainと記載する

local 実行

sam build && sam local start-api --parameter-overrides PrNumber=$(cat .pr_num) OpenAiApiKey=$(cat .open_ai_api_key)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages