<AI>LangChainをDocker環境で構築する<生成AI、AI入門>

AI
この記事が対象とする環境
ホスト(HOST) ※実行マシン
Windows
Docker Desktop v4.35.1

Docker環境でLangChainの開発環境を構築する

c:/
`-- docker-projects/
    |-- Dockerfile
    |-- requirements.txt
    `-- main.py

必要ファイルの作成

Dockerfile

Dockerイメージを作成するための設計図となるテキストファイルです。

# ベースイメージ
FROM python:3.9

# 作業ディレクトリを作成
WORKDIR /app

# 必要なパッケージをインストール
RUN apt-get update && apt-get install -y --no-install-recommends \
    build-essential \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Pythonのパッケージをインストール
COPY requirements.txt /app/requirements.txt
RUN pip install --no-cache-dir -r requirements.txt

# アプリケーションコードをコピー
COPY . /app

# コンテナ起動時に実行するコマンドを指定(適宜変更)
CMD ["python", "main.py"]

パッケージ(requirements.txt)

Pythonプロジェクトで必要なパッケージとそのバージョンを一覧化したテキストファイルです。LangChainはここで指定します。

langchain
openai
tiktoken
faiss-cpu
langchain-community

エントリポイント(main.py)

from langchain import OpenAI, LLMChain
from langchain.prompts import PromptTemplate

# OpenAI APIキーの設定
import os
os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY"

# プロンプトのテンプレートを作成
prompt = PromptTemplate(
    input_variables=["question"],
    template="Q: {question}\nA:"
)

# OpenAIのLLMを使用
llm = OpenAI(temperature=0.7)

# LLMChainを作成
chain = LLMChain(llm=llm, prompt=prompt)

# 質問に対する応答を生成
def get_response(question):
    return chain.run(question)

if __name__ == "__main__":
    question = "北海道で有名な海産物は?"
    response = get_response(question)
    print(f"質問: {question}")
    print(f"応答: {response}")

Dockerイメージのビルド

docker build -t langchain-app .

Dockerコンテナの実行

docker run --rm langchain_app

実行結果

質問: 北海道で有名な海産物は?
応答: 北海道では、ズワイガニ、ホタテ、いくら、たらこ、サケなどが有名な海産物です。また、ウニやホッキ貝、あさりなども観光客に人気があります。

トラブルシューティング

OpenAIのAPIキーが存在しない場合

openai.AuthenticationError: Error code: 401 – {‘error’: {‘message’: ‘Incorrect API key provided: xxx. You can find your API key at https://platform.openai.com/account/api-keys.’, ‘type’: ‘invalid_request_error’, ‘param’: None, ‘code’: ‘invalid_api_key’}}

OpenAIのAPIキーのクレジット残高が不足している場合

openai.RateLimitError: Error code: 429 – {‘error’: {‘message’: ‘You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.’, ‘type’: ‘insufficient_quota’, ‘param’: None, ‘code’: ‘insufficient_quota’}}

札幌在住エンジニア。JavaやPHPやWordPressを中心とした記事が中心です。

【SE歴】四半世紀以上
【Backend】php / java(spring) / c# / AdobeFlex / c++ / VB / cobol
【Frontend】 vue.js / jquery他 / javascript / html / css
【DB】oracle / mysql / mariadb / sqlite
【infrastructure】aws / oracle / gcp
【license】aws(saa-c03) / oracle master / XML Master / Sun Certified Programmer for the Java 2 Platform 1.4

Nobelをフォローする
AI
Nobelをフォローする

コメント

タイトルとURLをコピーしました