ベースアプリケーションのデプロイ
セットアップと設定
この章では 1-base-app フォルダで作業します。以下の手順でPython環境の作成、シークレットの設定、データベースの起動、エージェントが必要とするサンプルデータの読み込みを行います。
ラボインスタンスにログイン
~/workshop/healthcare-assistant/ に事前にロードされており、OPENAI_API_KEY は環境に設定済みです。Kubernetes Secretの作成
以下のコマンドを実行してKubernetes Secretを作成します。アプリケーションはこれを使用してOpenAIモデルに接続します。
kubectl create secret generic openai-api \
--from-literal=openai-api-key="$OPENAI_API_KEY" \
--from-literal=openai-api-endpoint="$OPENAI_BASE_URL"Kubernetes Config Mapの作成
以下のコマンドを実行してKubernetes Config Mapを作成します。アプリケーションが使用する追加の設定パラメータが格納されます。
cd ~/workshop/healthcare-assistant/1-base-app
kubectl apply -f healthcare-assistant-config.yamlPostgreSQLデータベースの起動
ヘルスケアアシスタントは、薬のFAQエンベディングと患者レコードを pgvector 拡張機能付きのPostgreSQLに保存します。以下のコマンドでKubernetes上にPostgreSQLを起動します。
cd ~/workshop/healthcare-assistant/1-base-app
kubectl apply -f postgres.yamlPostgreSQLが実行中であることを確認します。
kubectl get pods -l app=postgresNAME READY STATUS RESTARTS AGE
postgres-66ffcf4b8c-8s5lp 1/1 Running 0 16sDockerイメージのビルド
ベースアプリディレクトリに移動し、以下のコマンドを実行してアプリケーションのDockerイメージをビルドします。
cd ~/workshop/healthcare-assistant
docker build -f 1-base-app/Dockerfile -t localhost:9999/healthcare-assistant:base-app .
docker push localhost:9999/healthcare-assistant:base-appヒント
~/workshop/healthcare-assistant/1-base-app/k8s.yaml ファイルを編集し、イメージを ghcr.io/splunk/healthcare-assistant:base-app に変更してください。ベクトルデータとリレーショナルテーブルの読み込み
薬のFAQをpgvectorにエンベディングし、患者レジストリをPostgreSQLに読み込みます。ヘルパースクリプトが両方を実行します。
cd ~/workshop/healthcare-assistant/1-base-app
kubectl apply -f setup-job.yaml これにより python helpers/setup_vectordb.py local が実行され、docs/qa.csv から healthcare_local_index pgvectorコレクションが作成され、docs/relational_patient.csv から healthcare_patient テーブルが作成されます。
以下のコマンドでジョブを監視します(ジョブの開始まで30〜60秒かかる場合があります)。
kubectl logs -f job/vectordb-setupSetting up vector database for healthcare in hosted environment
🔧 Environment setup complete
Using chunk_size: 1000, chunk_overlap: 200
Using embedding model: text-embedding-3-large
Creating PostgreSQL/pgvector collection: healthcare_hosted_index
Adding documents to vector store...
Loading relational tables for healthcare...
✓ Loaded relational table healthcare_patient (30 rows) from relational_patient.csv
✅ Successfully created vector database for healthcare
📊 Total documents embedded: 15
🔗 PostgreSQL collection: healthcare_hosted_index
