- Akamai CloudアカウントとAPIトークン
- OpenAI APIキー
- ローカルにインストールされたTerraform
- ローカルにインストールされたkubectl
- ローカルにインストールされたs3cmd
- GitHubリポジトリへのアクセス
- デプロイキー用のSSHキーペア
始める前に
インフラのプロビジョニング、ドキュメントのアップロード、アプリケーションの展開に必要な認証情報とコマンドラインツールを準備する必要があります。
4つのステップでRAGチャットボットを構築
インフラのプロビジョニング、ナレッジベースのアップロード、アプリケーションの展開、完成したチャットボットの検証を行います。
プロジェクトのクローンを作成します。
git clone https://github.com/akamai-developers/rag-langgraph-k8s-quickstart.git
cd rag-langgraph-k8s-quickstart
Terraformのサンプルファイルをコピーし、Akamai Cloud APIトークンと好みのリソース設定でそのファイルの設定を行います。
cp terraform/terraform.tfvars.example terraform/terraform.tfvars
LKEクラスター、2つのPostgreSQLデータベース、およびObject Storageのバケットをプロビジョニングします。
cd terraform
terraform init
terraform plan
terraform apply
Terraformの出力を保護します。それには機密性の高い接続情報が含まれています。
Terraformの出力を環境変数にロードします。
export S3_BUCKET=$(terraform output -raw S3_BUCKET_NAME)
export S3_ENDPOINT=$(terraform output -raw S3_ENDPOINT)
export S3_ACCESS_KEY=$(terraform output -raw S3_ACCESS_KEY)
export S3_SECRET_KEY=$(terraform output -raw S3_SECRET_KEY)
付属している航空会社のポリシードキュメントをアップロードします。
s3cmd sync ../documents/ s3://${S3_BUCKET}/ \
--host=${S3_ENDPOINT} \
--host-bucket=${S3_ENDPOINT} \
--access_key=${S3_ACCESS_KEY} \
--secret_key=${S3_SECRET_KEY}
サンプルポリシーは、PDF、HTML、またはテキストファイル形式の独自のドキュメントに置き換えることができます。
生成されたkubeconfigを設定します。
export KUBECONFIG=./kubeconfig.yaml
keycloakの名前空間からApp Platformの初期認証情報を取得し、サインインします。
App Platformで次のことを行います。
- Harborコンテナレジストリをインストールします。
- GitHubデプロイキーを生成します。
- リポジトリに公開鍵を追加します。
- 秘密鍵はSealed Secretとして保存します。
- コードリポジトリを接続します。
- アプリケーションのイメージを構築します。
- OpenAI、PostgreSQL、Object Storage、および管理用APIキーのSealed Secretを作成します。
- 両方のPostgreSQLデータベースにネットワークポリシーを追加します。
- charts/workflow.example.yamlを使用してワークロードを作成します。
- アプリケーションのパブリックサービスを作成します。
リポジトリやワークロード設定に認証情報をハードコードしてはなりません。
アプリケーションが動作していることを確認します。
curl http://<your-service-endpoint>/api/health
データベースを初期化します。
curl -X POST \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/initialize_databases
ポリシードキュメントのインデックスを作成します。
curl -X POST \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/index_documents
返されたジョブIDを使用して、進捗状況を確認します。
curl -X GET \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/index_documents/<job-id>
インデックス作成が完了したら、サービスエンドポイントを開き、アップロードされたポリシーについて質問します。
*プロモーションの引き換えに関する規則と条件をご覧ください
よくある質問(FAQ)
よくある質問(FAQ)
このアプリケーションは、Object Storageに保存されたPDF、HTML、テキストファイルを処理できます。
1つは、セマンティック検索のためにベクトル埋め込みを保存します。もう1つは、会話履歴とLangGraphの状態を保存します。
いいえ。現在のプロジェクトは、埋め込みとチャット補完にOpenAI APIを使用します。後からそれを調整し、GPUを使用したLKEノード上でオープン・ソース・モデルを動作させることができます。
はい。ドキュメントディレクトリ内にあるサンプルの航空会社のポリシーをアップロードする前に、ご自身の対応ファイルに置き換えてください。
このプロジェクトは、OpenAI、データベース、Object Storage、デプロイキー、管理者認証情報にSealed Secretを使用します。
インデックス作成エンドポイントがジョブIDを返します。チャットボットをテストする前に、ステータスエンドポイントを使用してジョブの進捗状況を確認してください。
いいえ。Akamai Cloudクレジットは、対象のAkamai Cloudインフラに適用されます。OpenAI APIの使用料は別途請求されます。