正直しんどいOpenAIのAPI利用による自社自動応答システム構築
ChatGPTの利用に関する前提
ChatGPTは、公開されている情報を基に質問に答えたり、文章を要約したり、プログラムを書いたり、ブレインストーミングの相手になったりするのにはとても便利ですが、社内情報や特定の機密データに関する質問には答えられません。なので、自社で用意することが必要です。
1. APIの利用登録
1.1 Googleアカウントの作成
- API利用のためにGoogleアカウントを作成
- Googleアカウントの作成 リンク
1.2 OpenAIアカウントの作成
- OpenAIの公式サイトでアカウントを作成
- OpenAI サインアップ リンク
1.3 APIキーの取得
- アカウント作成後にダッシュボードにログインし、APIキーを取得
2. 自動応答システムの構築方法
2.1 回答集の作成
- 自社サービスに関するよくある質問とその回答をデータベースにまとめる
例:
- 質問: 「サービスの利用方法を教えて」
- 回答: 「サービス利用ガイドをご参照ください。詳細はこちら [リンク]」
2.2 初期学習
- 作成した回答集をChatGPTに学習させる
import openai
# OpenAIのAPIキーを設定
openai.api_key = 'your-api-key-here'
# 自社サービスに関する質問と回答のデータベース
faq_data = {
"サービスの利用方法を教えて": "サービス利用ガイドをご参照ください。詳細はこちら [リンク]",
# その他の質問と回答
}
# AIに学習させる関数
def train_model(faq_data):
for question, answer in faq_data.items():
# モデルに質問と回答を提供して学習させる処理
response = openai.Completion.create(
engine="davinci",
prompt=f"Q: {question}\nA: {answer}",
max_tokens=100
)
# 学習実行
train_model(faq_data)
2.3 ユーザーとの対話データの収集
- ユーザーとChatGPTの対話データを収集し、分析
# ユーザーの質問に応答を生成する関数
def generate_response(user_input):
if user_input in faq_data:
return faq_data[user_input]
else:
response = openai.Completion.create(
engine="davinci",
prompt=f"Q: {user_input}\nA:",
max_tokens=100
)
return response.choices[0].text.strip()
# ユーザーからの質問
user_input = "サービスの利用方法を教えて"
# 応答を生成
response = generate_response(user_input)
print(response)
2.4 予期しない質問に対応する方法
- デフォルトの応答を設定し、ChatGPTを活用
デフォルト応答の例:
def generate_response(user_input):
if user_input in faq_data:
return faq_data[user_input]
else:
return "ご質問の内容については、詳しく調査してお知らせいたします。しばらくお待ちください。"
# ユーザーからの質問
user_input = "未対応の質問"
# 応答を生成
response = generate_response(user_input)
print(response)
ChatGPTを活用した例:
import openai
# OpenAIのAPIキーを設定
openai.api_key = 'your-api-key-here'
# 自社サービスに関する質問と回答のデータベース
faq_data = {
"サービスの利用方法を教えて": "サービス利用ガイドをご参照ください。詳細はこちら [リンク]",
# その他の質問と回答
}
# ユーザーの質問に応答を生成する関数
def generate_response(user_input):
if user_input in faq_data:
return faq_data[user_input]
else:
response = openai.Completion.create(
engine="davinci",
prompt=f"Q: {user_input}\nA:",
max_tokens=100
)
return response.choices[0].text.strip()
# ユーザーからの質問
user_input = "未対応の質問"
# 応答を生成
response = generate_response(user_input)
print(response)
2.5 継続的な学習と更新
- 対話データを継続的に収集し、ChatGPTに学習させて回答精度を向上
# ユーザーからのフィードバックを収集し、モデルを改善する関数
def improve_model(feedback_data):
for feedback in feedback_data:
question = feedback['question']
correct_answer = feedback['correct_answer']
response = openai.Completion.create(
engine="davinci",
prompt=f"Q: {question}\nA: {correct_answer}",
max_tokens=100
)
# フィードバックデータの例
feedback_data = [
{"question": "サービスの利用方法を教えて",
"correct_answer": "サービス利用ガイドをご参照ください。詳細はこちら [リンク]"},
# その他のフィードバック
]
# モデルの改善実行
improve_model(feedback_data)
3. AIを利用したサポートとQ&Aページの比較
- 初期設定
- AIを利用したサポート: 回答集の作成、APIキーの取得、モデルの初期学習
- Q&Aページ: 回答集の作成、ページのデザインと実装
- 日常運用
- AIを利用したサポート: ユーザー対話データの収集、フィードバックの分析、モデルの更新
- Q&Aページ: 新しい質問の追加、回答の更新
- パーソナライズ
- AIを利用したサポート: ユーザーごとの履歴や好みに基づく応答が可能
- Q&Aページ: パーソナライズ不可
- リアルタイム対応
- AIを利用したサポート: 24時間365日対応可能
- Q&Aページ: 24時間アクセス可能だが対話は不可
- 応答の柔軟性
- AIを利用したサポート: 高い(自然な対話と個別対応が可能)
- Q&Aページ: 低い(定型回答のみ)
- 継続的な学習
- AIを利用したサポート: あり(フィードバックに基づきモデル改善)
- Q&Aページ: なし
- コスト
- AIを利用したサポート: 高い(API利用料、継続的なメンテナンスコスト)
- Q&Aページ: 低い(初期設定後の維持コストは低い)
4. AIには高度なアルゴリズムと機械学習の技術が必要
AIという言葉が広く使われるようになって、多くの技術やシステムが「AI」としてラベル付けされることがあります。 しかし、すべてが本当にAIに値するわけではない場合もあります。
AIには高度なアルゴリズムと機械学習の技術が必要であり、ただの自動化や単純なプログラムではありません。 混同すると、本当に重要で革新的なAI技術の価値が見落とされてしまうことがあります。
例えば、以下のような区別が大切です:
- AI: 機械学習や深層学習を用いて、自律的に学習し、判断し、改善するシステム。
- 自動化システム: 予めプログラムされた手順に従って動作するシステムで、学習や自己改善の能力はない。