1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LangChain × Bedrock Nova Lite 連携環境構築ガイド(with Python & Poetry)

Posted at

✨ 概要

本記事では、AWS Bedrock の Amazon Nova Lite モデルを LangChain 経由で呼び出すための Python 開発環境を構築し、動作確認を行うまでの手順を丁寧に解説します。

Poetry を活用した依存管理、.env を利用した秘匿情報の管理、そして AWS コンソール上での最低限の準備(Inference Profile の作成)も扱います。

対象読者:

  • LangChain × AWS Bedrock を初めて使う人
  • Claude ではなく Nova(低コスト・高速)モデルを使いたい人
  • セキュアかつスクリプタブルな開発環境を整えたい人

✅ 前提条件

  • AWS アカウント作成済み
  • AWS Bedrock 利用申請済み(Nova Lite モデルを有効にしておく)
  • Python 3.11+ インストール済み
  • Poetry インストール済み

📁 使用ライブラリ(main.pyで使用するもののみ)

ライブラリ 用途
langchain-aws ChatBedrock による Bedrock 呼び出し
boto3 AWS SDK(内部的に必要)
python-dotenv .env 管理

📦 Poetry プロジェクト初期化

poetry init
# すべて Enter で OK

🛠 pyproject.toml(完成形)

以下は筆者の環境で実際に動作確認済みのバージョン構成です。

[tool.poetry]
name = "app"
version = "0.1.0"
description = "AWS Bedrock Nova Lite x LangChain"
authors = ["yourname <your.email@example.com>"]
readme = "README.md"

[tool.poetry.dependencies]
python = ">=3.11,<4.0"
langchain = "0.3.25"
langchain-community = "0.3.23"
langchain-aws = "*"
boto3 = "1.37.24"
python-dotenv = "1.1.0"
pydantic = "2.10.0"

[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"
poetry install

🌍 .env の作成(秘匿情報の外出し)

MODEL_ID=arn:aws:bedrock:ap-northeast-1:123456789012:inference-profile/apac.amazon.nova-lite-v1:0
AWS_REGION=ap-northeast-1

※ 上記の MODEL_ID は Bedrock コンソールで作成した Inference Profile の ARN に置き換えてください。


🧠 main.py(実行スクリプト)

import os
from dotenv import load_dotenv
from langchain_aws import ChatBedrock
from langchain.schema import HumanMessage

load_dotenv()

chat = ChatBedrock(
    model_id=os.getenv("MODEL_ID"),
    region_name=os.getenv("AWS_REGION"),
    provider="amazon",
    model_kwargs={
        "max_tokens": 1024,
        "temperature": 0.7,
        "top_k": 250,
        "top_p": 0.9,
    },
)

response = chat.invoke([
    HumanMessage(content="カレーの作り方を教えてください。")
])

print("AIの回答:")
print(response.content)

🖥 AWS コンソールでの Inference Profile 作成手順

  1. Bedrock Console にアクセス
  2. 左メニュー「Inference profiles」をクリック
  3. Create inference profile」を選択
  4. モデル選択:amazon.nova-lite-v1
  5. プロファイル名:例 apac.amazon.nova-lite-v1
  6. 作成後、表示される ARN.envMODEL_ID にコピー

※ クロスリージョン用プロファイルでない場合、ap-northeast-1 同士で統一すること。


▶️ 実行確認

poetry run python main.py

成功すると、Nova Lite からの応答が表示されます。


⚠️ よくあるエラーと対処

エラー内容 原因・対策
ValueError: Model provider should be supplied provider="amazon" の指定忘れ。ARN 使用時は必須。
ValidationException: Invocation with on-demand isn’t supported Nova Lite は on-demand 非対応。Inference Profile の ARN を使うこと。
.env の値が None になる load_dotenv() を忘れている、または .env が同階層にない。
botocore.exceptions.NoCredentialsError AWS認証情報(~/.aws/credentials または 環境変数)が設定されていない。

🔚 おわりに

Claude に比べてコストが低く、応答も高速な Nova Lite モデルは、開発初期や検証段階のチャットボットに非常に適しています。

LangChain の抽象化を活用することで、AWS SDK に直接触れることなく、直感的なコードで AI モデルにアクセスできるようになります。

Poetry + .env 管理を組み合わせることで、再現性のある、セキュアな開発環境が手に入ります。


💬 今後の発展

  • Claude 3(Anthropic)や Titan、Mistral など他モデルへの切り替え
  • Streamlit や FastAPI と組み合わせたチャットUI化
  • LangChain Agents や Memory 機能との統合

📚 参考リンク


以上、LangChain × Bedrock Nova Lite の導入記事でした!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?