Agroxis
2026年7月27日

LLM+RAG_AWS

LLMRAGAWSLambda Step functions
LLM+RAG_AWS

<LLM+RAGの利用方法>
1.学習データを S3 に置く(JSONL形式)
2.Bedrockでモデルカスタマイズジョブを作成
3.出来上がったカスタムモデルを Bedrock経由で呼び出し


---

<流れ>
[評価実行リクエスト]

[Bedrock]
├─ Knowledge Base(RAG)
│ ├ 資料(作成/参照)
│ ├ メール内容
│ ├ 人事評価コメント

└─ Fine-tuned Model
├ 評価基準
├ 重み付けロジック
└ ランク定義

[評価結果(理由付き)]


<実装の最小構成(AWS)>

入力:S3(PDF/テキスト/メールエクスポート)

変換:Lambda もしくは Step Functions

Chunk化:Bedrock InvokeModel(Claude/Nova等)

保存:S3(chunk jsonl) or OpenSearch

取り込み:Bedrock Knowledge Base



【Knowledge Base(RAG)設計】

投入するデータ種別
・資料系(設計書、手順書、方針資料など)
・メール/テキストコミュニケーション
・人事評価コメント

➡上記情報をChunk化する
※Chunk化のOutputはJSON
※指示はプロンプトで以下のような感じ

---
あなたは社内文書を評価用Chunkに変換する役です。
次のルールを守り、JSONのみで出力してください。

ルール:
- 1 chunk = 1行動 or 1判断
- 推測は禁止。本文に書かれた事実だけ
- chunkは100〜300文字程度
- それぞれに title, employee_id, date, type, skill_domain, impact, content を付与

入力:
<<<本文>>>
----




【Fine-tuned Modelに投入するJSONデータ】
--Level1--
{
"messages": [
{
"role": "user",
"content": "以下の情報を基に評価してください。\n\n【評価材料】\n- 資料内で◯◯という用語を使用しているが説明はない\n- メールでは作業完了報告が中心\n- 人事コメント:指示があれば対応可能"
},
{
"role": "assistant",
"content": "{ \"level\": \"level1\", \"reason\": \"用語の使用は確認できるが、判断理由や応用の記述がなく、指示ベースでの対応に留まっているため\", \"evidence\": [\"資料で用語使用のみ\", \"報告中心のメール\", \"人事コメント\"], \"missing_info\": [\"判断理由の記述\", \"自律的な改善提案\"], \"confidence\": \"中\" }"
}
]
}

--Level2--
{
"messages": [
{
"role": "user",
"content": "【評価材料】\n- 参照資料はあるが本人の関与度が不明\n- メール履歴が少ない\n- 人事コメントなし"
},
{
"role": "assistant",
"content": "{ \"level\": \"暫定:level2\", \"reason\": \"本人の判断やアウトプットを示す証拠が不足しているため\", \"evidence\": [\"関与度不明の資料\"], \"missing_info\": [\"本人が作成または判断した記録\", \"メールやレビュー履歴\"], \"confidence\": \"低\" }"
}
]
}