概要
OpenAIは、GPT-4をはじめとする高性能な大規模言語モデル(LLM)を提供するクラウドサービスです。 Fess ではOpenAI APIを使用してAIモード機能を実現できます。
OpenAIを使用することで、最先端のAIモデルによる高品質な回答生成が可能になります。
主な特徴
高品質な回答: 最先端のGPTモデルによる高精度な回答生成
スケーラビリティ: クラウドサービスのため、スケーリングが容易
継続的な改善: モデルの定期的なアップデートにより性能が向上
豊富な機能: テキスト生成、要約、翻訳など多様なタスクに対応
対応モデル
OpenAIで利用可能な主なモデル:
gpt-4o- 最新の高性能モデルgpt-4o-mini- GPT-4oの軽量版(コスト効率が良い)gpt-4-turbo- GPT-4の高速版gpt-3.5-turbo- コストパフォーマンスに優れたモデル
注釈
利用可能なモデルの最新情報は OpenAI Models で確認できます。
前提条件
OpenAIを使用する前に、以下を準備してください。
OpenAIアカウント: https://platform.openai.com/ でアカウントを作成
APIキー: OpenAIダッシュボードでAPIキーを生成
請求設定: APIの使用には課金が発生するため、請求情報を設定
APIキーの取得
OpenAI Platform にログイン
「API keys」セクションに移動
「Create new secret key」をクリック
キー名を入力して作成
表示されたキーを安全に保存(一度しか表示されません)
警告
APIキーは機密情報です。以下の点に注意してください:
バージョン管理システムにコミットしない
ログに出力しない
環境変数や安全な設定ファイルで管理する
基本設定
app/WEB-INF/conf/system.properties に以下の設定を追加します。
最小構成
# AIモード機能を有効にする
rag.chat.enabled=true
# LLMプロバイダーをOpenAIに設定
rag.llm.type=openai
# OpenAI APIキー
rag.llm.openai.api.key=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# 使用するモデル
rag.llm.openai.model=gpt-4o-mini
推奨構成(本番環境)
# AIモード機能を有効にする
rag.chat.enabled=true
# LLMプロバイダー設定
rag.llm.type=openai
# OpenAI APIキー
rag.llm.openai.api.key=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
# モデル設定(高性能モデルを使用)
rag.llm.openai.model=gpt-4o
# APIエンドポイント(通常は変更不要)
rag.llm.openai.api.url=https://api.openai.com/v1
# タイムアウト設定
rag.llm.openai.timeout=60000
設定項目
OpenAIクライアントで使用可能なすべての設定項目です。
| プロパティ | 説明 | デフォルト |
|---|---|---|
rag.llm.openai.api.key | OpenAI APIキー | (必須) |
rag.llm.openai.model | 使用するモデル名 | gpt-4o-mini |
rag.llm.openai.api.url | APIのベースURL | https://api.openai.com/v1 |
rag.llm.openai.timeout | リクエストのタイムアウト時間(ミリ秒) | 60000 |
環境変数での設定
セキュリティ上の理由から、APIキーを環境変数で設定することを推奨します。
Docker環境
docker run -e RAG_LLM_OPENAI_API_KEY=sk-xxx... codelibs/fess:15.5.0
docker-compose.yml
services:
fess:
image: codelibs/fess:15.5.0
environment:
- RAG_CHAT_ENABLED=true
- RAG_LLM_TYPE=openai
- RAG_LLM_OPENAI_API_KEY=${OPENAI_API_KEY}
- RAG_LLM_OPENAI_MODEL=gpt-4o-mini
systemd環境
/etc/systemd/system/fess.service.d/override.conf:
[Service]
Environment="RAG_LLM_OPENAI_API_KEY=sk-xxx..."
Azure OpenAIの使用
Microsoft Azure経由でOpenAIモデルを使用する場合は、APIエンドポイントを変更します。
# Azure OpenAIエンドポイント
rag.llm.openai.api.url=https://your-resource.openai.azure.com/openai/deployments/your-deployment
# Azure APIキー
rag.llm.openai.api.key=your-azure-api-key
# デプロイ名(モデル名として指定)
rag.llm.openai.model=your-deployment-name
注釈
Azure OpenAIを使用する場合、APIのリクエスト形式が若干異なる場合があります。 詳細はAzure OpenAIのドキュメントを参照してください。
モデルの選択ガイド
使用目的に応じたモデル選択の指針です。
| モデル | コスト | 品質 | 用途 |
|---|---|---|---|
gpt-3.5-turbo | 低 | 良好 | 一般的な質問応答、コスト重視 |
gpt-4o-mini | 中 | 高 | バランスの取れた用途(推奨) |
gpt-4o | 高 | 最高 | 複雑な推論、高品質が必要な場合 |
gpt-4-turbo | 高 | 最高 | 高速レスポンスが必要な場合 |
コストの目安
OpenAI APIは使用量に基づいて課金されます。以下は2024年時点の参考価格です。
| モデル | 入力(1Kトークン) | 出力(1Kトークン) |
|---|---|---|
| gpt-3.5-turbo | $0.0005 | $0.0015 |
| gpt-4o-mini | $0.00015 | $0.0006 |
| gpt-4o | $0.005 | $0.015 |
注釈
最新の価格は OpenAI Pricing で確認してください。
レート制限
OpenAI APIにはレート制限があります。Fess のレート制限機能と組み合わせて適切に設定してください。
# Fessのレート制限設定
rag.chat.rate.limit.enabled=true
rag.chat.rate.limit.requests.per.minute=10
OpenAIのTier別制限
OpenAIアカウントのTierに応じて制限が異なります:
Free: 3 RPM(リクエスト/分)
Tier 1: 500 RPM
Tier 2: 5,000 RPM
Tier 3+: さらに高い制限
トラブルシューティング
認証エラー
症状: 「401 Unauthorized」エラーが発生する
確認事項:
APIキーが正しく設定されているか確認
APIキーが有効か確認(OpenAIダッシュボードで確認)
APIキーに必要な権限があるか確認
レート制限エラー
症状: 「429 Too Many Requests」エラーが発生する
解決方法:
Fess のレート制限を厳しく設定:
rag.chat.rate.limit.requests.per.minute=5
OpenAIアカウントのTierをアップグレード
クォータ超過
症状: 「You exceeded your current quota」エラー
解決方法:
OpenAIダッシュボードで使用量を確認
請求設定を確認し、必要に応じて上限を引き上げ
タイムアウト
症状: リクエストがタイムアウトする
解決方法:
タイムアウト時間を延長:
rag.llm.openai.timeout=120000
より高速なモデル(gpt-3.5-turbo等)を検討
デバッグ設定
問題を調査する際は、Fess のログレベルを調整してOpenAI関連の詳細なログを出力できます。
app/WEB-INF/classes/log4j2.xml:
<Logger name="org.codelibs.fess.llm.openai" level="DEBUG"/>
セキュリティに関する注意
OpenAI APIを使用する際は、以下のセキュリティ事項に注意してください。
データプライバシー: 検索結果の内容がOpenAIのサーバーに送信されます
APIキーの管理: キーの漏洩は不正利用につながります
コンプライアンス: 機密データを含む場合は、組織のポリシーを確認
使用ポリシー: OpenAIの利用規約を遵守
参考情報
LLM統合の概要 - LLM統合の概要
AIモード機能の設定 - AIモード機能の詳細