このガイドでは クロード の高度な対話機能は、顧客からの問い合わせをリアルタイムで処理し、24時間365日のサポートを提供し、待ち時間を短縮し、正確な応答と積極的な対話で大量のサポートリクエストを管理します。
クロードと組む前に
サポートチャットにクロードを使うかどうかを決める
クロードのようなLLMを使ってカスタマーサポートプロセスの一部を自動化すべき重要な指標をいくつか挙げてみよう:
繰り返しの多いクエリー
クロードは、大量の似たような問題を効率的に処理することに特化しており、人間のエージェントはより複雑な問題に取り組むことができる。
迅速な情報統合の必要性
クロードは膨大な知識ベースから情報を素早く検索、処理、統合することができるが、人間のエージェントは調査を行ったり、複数の情報源を参照したりするのに時間を要するかもしれない。
24時間365日の可用性要件
クロードは24時間365日、疲れることなくサポートを提供することができる。一方、人間のエージェントに継続的なサポートを提供することは、コストもかかるし、難しいことだ。
ピーク時の急拡大
クロードは、スタッフを増員したり訓練したりすることなく、問い合わせ件数の急激な増加に対応できる。
一貫したブランド・ボイス
クロードには一貫してブランドのトーンや価値観を表現するよう指示できますが、人間のエージェントはコミュニケーション・スタイルが異なる場合があります。
他のLLMよりクロードを選ぶ際に考慮すべきいくつかの要素:
- 自然でニュアンスのある会話を優先する:クロードの洗練された言語理解力により、他のLLMとのチャットよりも人間同士の対話に近い、より自然で文脈を意識した会話が可能になります。
- クロードは、定型的な回答を生成したり、ユーザー用語の並べ替えを大量に書いたりすることなく、幅広いトピックやクエリに対応できます。
- 拡張性のある多言語サポートが必要:クロードの多言語機能により、対応言語ごとにチャットボットを設定したり、大規模な翻訳プロセスを経たりすることなく、200以上の言語での会話が可能になります。
理想的なチャット・インタラクションの定義
理想的な顧客とのやり取りを概説し、顧客がいつ、どのようにクロードとやり取りすることを期待するかを定義します。この概要は、ソリューションの技術要件を定義するのに役立ちます。
以下は、自動車保険カスタマーサポートのチャット対話のサンプルです:
- お客様サポート・チャット体験
- クロードお客様を温かく迎え、対話を始める
- お客様新しい電気自動車の保険について尋ねる
- クロード電気自動車保険に関する情報提供
- お客様電気自動車保険に関する質問
- クロード正確で有益な回答を、関連情報源へのリンクとともに提供すること。
- お客様保険やクルマとは関係のない質問をすること
- クロード無関係な話題は扱わないことを明確にし、顧客を自動車保険関連のコンテンツに誘導する。
- お客様保険の見積もりに興味を示す
- クロード適切な見積もりを決定するために一連の質問をし、顧客の回答に基づいて見積もりを調整する。
- クロード顧客から収集した必要な情報を見積書作成APIツールに送信します。
- クロードAPIツールからレスポンス情報を受け取り、自然な答えに合成し、顧客に見積もりを提供する。
- お客様質問 : フォローアップの質問
- クロード必要に応じてフォローアップの質問に答える
- クロードお客様を次のステップへご案内し、対話を終了する。
あなた自身のユースケースのために実際の例を書くとき、クロードの理想的なトーン、応答の長さ、必要とされる詳細のレベルを感じることができるように、対話で使用される実際の言葉を書き出すことが役に立つかもしれません。
相互作用を個別のタスクに分解する
カスタマ サポート チャットは、質問への回答、情報の取得、およびリクエスト アクションの処理など、多くの異なるタスクで構成され、すべてが 1 つの完全なカスタマ インタラクションにまとめられます。構築を開始する前に、理想的な顧客との対話をクロードが実行する必要がある各タスクに分解します。これにより、各タスクに対してクロードを促し、評価することが確実になり、テストケースを書くときに考慮すべきインタラクションの範囲をよく理解することができます。
クライアントは、このプロセスをインタラクション・フローチャートとして視覚化することで、ユーザーのリクエストに基づく可能な対話の分岐点を示すことができる。
以下は、上記の保険取引に関連する主な業務である:
- 歓迎と一般的なガイダンス
- お客様を温かく迎え、対話を始める
- 会社や交流に関する基本情報を提供する
- 製品情報
- EV保険に関する情報を提供する これは、クロードがその文脈で必要な情報を得られるようにする必要がある。 RAG統合.
- 電気自動車保険の特別なニーズに関する質問に答える。
- 見積もりや保険の詳細に関するフォローアップの質問に答える
- 必要に応じて関連情報源へのリンクを提供する
- ダイアログ・マネジメント
- トピックに集中する(自動車保険)
- トピックから外れた質問を関連するトピックに戻す
- 引用 世代
- オファーの適格性を判断するために適切な質問をする
- 顧客の回答に基づいて質問を調整する
- 収集した情報を見積もり作成APIに送信します。
- 作成した見積書を顧客に提供する
成功基準の確立
サポートチームと協力して明確な成功基準を定めるそして、定量化可能なベンチマークと目標を記載した報告書を作成する。詳細評価.
以下は、クロードが定義されたタスクを遂行する上での成功を評価するための基準とベンチマークである:
クエリー理解精度
この指標は、さまざまなトピックにわたる顧客からの問い合わせに対するクロードの理解の正確さを評価するものです。会話のサンプルを確認することで、顧客の意図、重要な次のステップ、成功したソリューションなどに関するクロードの理解が評価されます。目標は95%以上の理解精度を達成することです。
関連性
クロードの応答が顧客の特定の問題を解決するのに有効かどうかを評価する。一連のダイアログを評価し、各回答の関連性を評価する(大規模言語モデルに基づくスコアリングシステムを使用した大規模評価)。90%以上の関連性スコアを目標とする。
応答精度
提供された文脈情報に基づき、クロードに提供された企業および製品情報の正確性を評価する。目標は、このリード情報の正確さ100%を達成することである。
引用による関連性
提供されたリンクやリソースの頻度と関連性を追跡する。目標は、追加情報を必要とする80%の相互作用において、関連するリソースを提供することです。
テーマの順守
例えば自動車保険の例では、対話中にクロードがトピックに留まるかどうかを評価し、自動車保険や顧客固有の質問に対するクロードの応答を評価する。目標は95%の応答が自動車保険や顧客特有の質問に直接関係することである。
コンテンツ生成の効果
クロードがいつメッセージの内容を生成するか、またその内容の妥当性を評価する。例えば、私たちの実装では、クロードがいつ見積もりを生成するか、またその正確さについて理解しているかを評価します。目標は100%の正確さであり、これは顧客とのやり取りを成功させるための重要な情報である。
アップグレード効率
これは、人間の介入が必要なクエリを特定し、適切な場合にエスカレーションするクロードの能力を測定します。正しくエスカレーションされた会話と、エスカレーションされるべきだったがされなかった会話の割合を追跡します。目標は95%以上のエスカレーション精度です。
以下は、サポートにクロードを使用することによるビジネスへの影響を評価するための基準とベンチマークです:
感情のメンテナンス
対話を通じて顧客のセンチメントを維持または改善するクロードの能力を評価する。センチメント分析ツールを使って、各対話の最初と最後の感情状態を測定する。目標は、90%の対話においてセンチメントが維持または改善されることです。
転用率
人間の介入なしにチャットボットによって正常に処理された顧客からの問い合わせの割合。一般的には、問い合わせの複雑さに応じて、70%~80%のトリアージ率を目標とします。
顧客満足度
チャットボットとのインタラクションに対する顧客満足度を測定する。通常、インタラクション後のアンケートによって行われる。目標は5点満点中4点以上の顧客満足度です。
平均処理時間
チャットボットが問い合わせを解決するまでの平均時間。この時間は質問の複雑さによって大きく異なりますが、全体的な目標は、人間のカスタマーサービスよりも平均処理時間を短くすることです。
カスタマーサービスとしてクロードを導入する方法
適切なクロード・モデルの選択
モデルの選択は、コスト、精度、応答時間のトレードオフに依存する。
カスタマーサポートチャットclaude-3-5-sonnet-20240620
インテリジェンス、待ち時間、コストのバランスをとるのに理想的である。しかし、複数のプロンプトがダイアログに含まれる場合(RAG、ツールの使用法、および/または長い文脈的プロンプトを含む)、そのプロンプトは、そのダイアログに含まれない。claude-3-haiku-20240307
レイテンシーを最適化した方がいいかもしれない。
強力なキュー・ワードを作る
クロードをカスタマーサポートに使用するには、クロードが適切に対応できるような方向性と文脈を持ち、幅広い顧客からの問い合わせに柔軟に対応できることが必要です。
強力なキューを書くための要素、システムキューから始めよう:
IDENTITY =(同一性 """あなたはアクメ・インシュアランスのフレンドリーで知識豊富なAIアシスタント、エヴァです。あなたの役割は、お客様を温かくお迎えし、自動車保険や電気自動車保険など、アクメの保険商品に関する情報を提供することです。また、お客様が保険の見積もりを取るお手伝いもお願いします。"""
指示とユーザーとの対話を分離するために、すべての情報をシステムプロンプトの言葉に入れたくなるかもしれないが、クロードは実際には、プロンプトの内容のほとんどを、最初のラウンドの ユーザー
真ん中にいるときに最高のパフォーマンスを発揮する(唯一の例外は文字プロンプト)。詳しくは システムプロンプトを使用して、クロードにロールを割り当てます。.
複雑な合図は小部分に分解し、1つずつ書いていくのがベストである。各タスクについて、クロードがそのタスクを完了するために必要なプロンプトの部 分を段階的に定義することで、より良い結果を得ることができます。たとえば、自動車保険のカスタマーサポートの場合、「挨拶と一般的なガイダンス」タスクから段階的にプロンプトを書いていきます。これにより、プロンプト全体の個々の部分をより迅速に調整できるため、プロンプトのデバッグも容易になります。
これらのセクションはすべて config.py
を文書に追加した。
静的な挨拶と一般的な挨拶 """
<static_context
アクメ自動車保険:道路上の頼れるパートナー
簡単な説明
アクメ・インシュアランスでは、自動車は単なる移動手段ではなく、人生の冒険への切符であることを理解しています。1985年以来、私たちはドライバーの皆様が安心して探検、通勤、旅行ができるような自動車保険を開発してきました。
街中をナビゲートする場合でも、国中を旅行する場合でも、アクメはあなたとあなたの車を守ります。
アクメの革新的な自動車保険は、お客様独自のニーズに合わせて設計されており、軽微な衝突事故から大きな事故まで、あらゆるものをカバーします。
アクメの受賞歴のあるカスタマーサービスと迅速なクレーム・ソリューションで、お客様はドライブの楽しみに集中することができます。
アクメは単なる保険会社ではありません。
アクメ自動車保険をお選びいただければ、質の高い補償と真のケアによってもたらされる安心感を体験していただけます。アクメ自動車保険は、あなたの自動車に保険をかけるだけでなく、あなたの人生を築き上げるための旅をサポートします。
注:アクメは電気自動車に特化した保険も提供しており、あらゆる車種のドライバーにアクメの保障をご利用いただけます。
アクメ・インシュアランスでは以下の商品を取り扱っています:
- 自動車保険
- 電気自動車保険
- 二輪車保険
営業時間:月~金、午前9時~午後5時(米国東部標準時間)
カスタマーサービス番号: 1-800-123-4567
</static_context
"""
自動車保険と電気自動車保険の情報は同じように扱う。
static_car_insurance="""
<static_context
自動車保険の範囲
アクメの自動車保険は、通常以下のものをカバーする:
1.賠償責任保険:他人に与えた対人・対物損害に対して支払われる。
2.衝突保険:事故による車の損害に対して支払われます。
3.包括保険:衝突事故以外での車の損害に対して支払われる。 4.
4.医療費補償:事故後の医療費に支払われます。
5. 無保険/無保険車補償:無保険車に衝突された場合に補償されます。
オプション補償には以下が含まれます:
- レンタカーの払い戻し
- ロードサイドアシスタンス
- 新車交換
</static_context
"""
静的電気自動車保険"""
<static_context
電気自動車保険
当社の電気自動車保険は、従来の自動車保険の枠を超え、お客様のハイテク投資に対するプロテクションを提供します。標準的な保険プログラムに加え、以下を提供します:
- 高価なバッテリーシステムの保護
- 家庭用充電設備のカバー
- 電気自動車分野の急速な発展への対応
リビアンでも、日産リーフでも、シボレーでも、日産リーフでも。 ボルト 当社の経験豊富な代理店が、電気で動くすべての旅に安心をお届けする保険をご用意いたします。
</static_context
"""
静的コンテンツができたので、クロードの対応を導くために、「良い」インタラクションの例を少なくとも4-5つ追加しましょう。これらの例は、あなたの理想的な顧客とのやり取りを表すものであるべきで、セーフガードやツールコールなどを含めることができます。
EXAMPLES="""
顧客との接し方の例をいくつか紹介しよう:
<例1
H:こんにちは、中小企業向けのビジネス保険を扱っていますか?
A: はい!残念ながら、現在ビジネス保険は取り扱っておりません。
しかし、自動車保険や電気自動車保険など、個人向けの保険は取り扱っております。
これらの商品についてもっとお知りになりたいですか?
</例1
<例2
H: 営業時間を教えてください。
A: 営業時間は月曜日から金曜日の午前9時から午後5時までです。
ご質問やサポートが必要な場合は、営業時間内にお気軽にお問い合わせください。
他に何かお手伝いできることはありますか?
</例2
<例3
H: 自動車保険を探しているのですが、アクメではどのようなサービスを提供していますか?
A: 素晴らしい選択です!Acmeの自動車保険には通常以下のものが含まれています:
- 自賠責保険:事故の際、あなたに過失があった場合に補償されます。
- 衝突保険:事故による車の損害を補償します。
- 総合補償:盗難や破壊行為など、衝突事故以外の損害を補償します。
- Medical Expenses Coverage(医療費補償):事故後の医療費に備える。
- Uninsured/Underinsured Driver Coverage(無保険/無保険ドライバー補償):無保険ドライバーからあなたを守ります。
また、レンタカー払い戻し、ロードサイドアシスタンス、新車交換などのオプションカバーもご用意しています。
これらの特典について詳しくお知りになりたい方、またはお車の保険に関するその他の具体的なご質問をお持ちの方は、こちらからお問い合わせください。
</例3
<例4
H: 電気自動車保険の詳細を知りたいのですが。
A: もちろんです!当社の電気自動車保険は、電気自動車オーナーのユニークなニーズに対応しています。
通常の自動車保険に含まれている標準的な補償に加え、電気自動車保険には以下の補償が含まれています:
- バッテリーカバー:高価なバッテリーシステムを損傷や劣化から守ります。
- テクノロジー・パック:高度な電子機器やオンボード・コンピューター・システムの修理や交換をカバーします。
- 充電ステーション・カバー:家庭用およびポータブル充電機器を保護します。
- サイバーセキュリティカバー:ハッキングやデジタル脅威からの保護
- スペシャリスト・ロードサイド・アシスタンス:車両シャーシを保護するフラットベッド牽引サービスが含まれます。
テスラ、リビアン、日産、シボレーなどの人気モデルを含む、幅広い電気自動車に対応したカバーをご用意しています。
保険が必要な特定の電気自動車があるか、または特定の補償の詳細をご希望ですか?
</例4
<例5
H: 自動車保険の見積もりをお願いしたいのですが。
A: もちろんです!自動車保険のお見積もりをさせていただきます。
正確なお見積もりをお出しするために、お車と主な運転者についての情報をいくつか集める必要があります。
まずは基本的な情報から始めましょう:
1. お車のメーカーとモデルを教えてください。
2. お車の製造年は?
3. 走行距離は?
4. 主な運転者の年齢は?
これらの情報をご提供いただきましたら、お見積もりツールを使って、お客様に合った保険のお見積もりを作成させていただきます。
</例5
"""
また、クロードが顧客とどのように接するかについての重要な指示も含める必要があります。これらは、ブランド保護やサポートポリシーから引用することができます。
追加ガードレール """以下の注意事項をお守りください:
1.当社の商品に記載されている保険の種類についてのみ情報を提供すること。
2. 提供していない種類の保険について質問された場合は、提供していないことを丁重にお伝えください。
3. 将来の商品や会社の計画について推測しない。
4. 許可されていない約束や合意をしない。提供できるのは、情報とガイダンスのみです。
5. 競合他社の製品やサービスについて言及しないこと。
"""
では、これらのパーツを組み合わせて、プロンプトとして使う文字列を作ってみよう。
タスク固有の指示 ' '.join([
static_greetings_and_general、
静的自動車保険, 静的電気自動車保険
static_electric_car_insurance.
例
additional_guardrails, ])
])
ダイナミクスと積極性を高めるツールの使用
クロードは、クライアント側のツール機能を使用することで、操作の実行や情報の取得を動的に行うことができる。プロンプトに使用すべき外部ツールやAPIがあれば、最初に列挙する。
この例では、見積もりを計算するツールから始める。
ツールは実際に計算を実行するのではなく、ツールを使用することをアプリケーションに通知し、指定されたパラメータを渡すだけであることに注意してください。
保険見積もり計算の例
TOOLS = [{(ツール
名前: "get_quote",
"説明": "ユーザー入力に基づいて保険の見積もりを計算する。戻り値は月々の保険料です。",
"input_schema": {
「タイプ: "オブジェクト",
「プロパティ: {
"作る": {「タイプ: 「文字列, "説明": 車種},
「モデル: {「タイプ: 「文字列, "説明": "車種"},
年: {「タイプ: 整数, "説明": "自動車の製造年"},
「走行距離: {「タイプ: 整数, "説明": 「走行距離},
「ドライバー年齢: {「タイプ: 整数, "説明": "主要ドライバーの年齢"}
},
"必須": ["作る", 「モデル, 年, 「走行距離, 「ドライバー年齢]
}
}]
デフ get_quote(メーカー、モデル、年式、走行距離、ドライバー年齢):
"""毎月の保険料をお返しします(米ドル建て)"""
# HTTPエンドポイントやデータベースを呼び出して、見積もりを取得することができます。
#ここでは、1秒の遅延をシミュレートし、固定100ドルの見積もりを返す。
time.sleep()1)
戻る 100
ヒントを展開する
プロンプトをテスト本番環境にデプロイせずに 運用評価 の場合、ヒントの効果を知ることは困難です。そこで、ヒント、Anthropic SDK、streamlitを使って小さなアプリケーションを作り、そのユーザーインターフェイスを作ってみましょう。
その名の下に chatbot.py
ファイルで、まずAnthropic SDKとのインタラクションをカプセル化するChatBotクラスをセットアップします。
このクラスには2つの主要なメソッドが含まれていなければならない:メッセージ生成
歌で応える process_ユーザー入力
.
from anthropic import Anthropic
from config import IDENTITY, TOOLS, MODEL, get_quote
from dotenv import load_dotenv
load_dotenv()
class ChatBot:
def __init__(self, session_state):
self.anthropic = Anthropic()
self.session_state = session_state
def generate_message(
self,
messages,
max_tokens,
):
try:
response = self.anthropic.messages.create(
model=MODEL,
system=IDENTITY,
max_tokens=max_tokens,
messages=messages,
tools=TOOLS,
)
return response
except Exception as e:
return {"error": str(e)}
def process_user_input(self, user_input):
self.session_state.messages.append({"role": "user", "content": user_input})
response_message = self.generate_message(
messages=self.session_state.messages,
max_tokens=2048,
)
if "error" in response_message:
return f"发生错误: {response_message['error']}"
if response_message.content[-1].type == "tool_use":
tool_use = response_message.content[-1]
func_name = tool_use.name
func_params = tool_use.input
tool_use_id = tool_use.id
result = self.handle_tool_use(func_name, func_params)
self.session_state.messages.append(
{"role": "assistant", "content": response_message.content}
)
self.session_state.messages.append({
"role": "user",
"content": [{
"type": "tool_result",
"tool_use_id": tool_use_id,
"content": f"{result}",
}],
})
follow_up_response = self.generate_message(
messages=self.session_state.messages,
max_tokens=2048,
)
if "error" in follow_up_response:
return f"发生错误: {follow_up_response['error']}"
response_text = follow_up_response.content[0].text
self.session_state.messages.append(
{"role": "assistant", "content": response_text}
)
return response_text
elif response_message.content[0].type == "text":
response_text = response_message.content[0].text
self.session_state.messages.append(
{"role": "assistant", "content": response_text}
)
return response_text
else:
raise Exception("发生错误: 意外的响应类型")
def handle_tool_use(self, func_name, func_params):
if func_name == "get_quote":
premium = get_quote(**func_params)
return f"生成的报价: 每月 ${premium:.2f}"
raise Exception("使用了意外的工具")
ユーザーインターフェースの構築
このコードをStreamlitとマスター・メソッド・テストを使ってデプロイする。この メイン()
関数はStreamlitベースのチャットインターフェースを設定します。
という名前のファイルで作業することになる。 app.py
これは
インポート ストリームライト として スト
より チャットボット インポート チャットボット
より コンフィグ インポート タスク固有の指示
デフ メイン():
st.title()。「アクメ・インシュアランスのアシスタント、エヴァとおしゃべり🤖")
もし "メッセージ" 違う で st.session_state.メッセージ
st.session_state.messages = [ です。
{役割: 「ユーザー, 「コンテンツ: タスク固有の指示}, {
{役割: "アシスタント", 「コンテンツ: "理解した"}
]
chatbot = ChatBot(st.session_state)
# ユーザーとアシスタントのメッセージを表示します。
にとって メッセージ で st.session_state.messages[2:]:
# ツールによって使用されるメッセージブロックを無視する
もし イズインスタンス(メッセージ「コンテンツ], スト):
と st.chat_message(メッセージ[)役割]).
st.markdown(メッセージ[「コンテンツ])
もし user_msg := st.chat_input()"ここにメッセージを入力してください...").
st.chat_message(「ユーザー).markdown(user_msg)
と st.chat_message("アシスタント"):
と st.スピナー("エヴァは考えている...").
response_placeholder = st.empty()
full_response = chatbot.process_user_input(user_msg)
response_placeholder.markdown(full_response)
もし __name__ == "__main__":
main()
以下のコマンドでプログラムを実行する:
ストリームライト 走る アプリ.py
ヒントを評価する
プロンプトが本番環境に対応するには、多くの場合、テストと最適化が必要です。ソリューションの準備が整っているかどうかを判断するには、定量的な方法と定性的な方法を組み合わせた体系的なプロセスを通じてチャットボットのパフォーマンスを評価することができます。定義した成功基準に基づいて強力な実証的評価を使用すると、プロンプトを最適化できます。
アンソロピック・コンソール さまざまなシナリオでプロンプトをテストできる評価ツールが提供されました。
パフォーマンスの向上
複雑なシナリオでは、標準的なエンジニアリングのヒント歌で応えるガードレール実施戦略それ以上に、パフォーマンスを向上させるための他の戦略を検討することが役に立つかもしれない。よくあるシナリオをいくつか挙げてみよう:
RAGによる長いコンテキストの待ち時間の短縮
多数の静的および動的コンテキストを扱う場合、キューにすべての情報を含めると、コストが高くなり、応答時間が遅くなり、コンテキストウィンドウの限界に達する可能性がある。この場合、RAG(Retrieval Augmented Generation)技術を実装することで、パフォーマンスと効率を大幅に向上させることができる。
を使用する。 ボヤージュのような埋め込みモデル 情報をベクトル表現に変換することで、よりスケーラブルで応答性の高いシステムが構築される。このアプローチでは、すべての可能なコンテキストをヒントに含めるのではなく、現在のクエリに基づいて関連情報を動的に検索することができます。
気付く ラグ シナリオの使用をサポートするために使用される RAG製剤 は、幅広いコンテキストを必要とするシステムにおいて、精度を向上させ、応答時間を短縮し、APIコストを削減することが示されている。
ツールの使用によるリアルタイムデータの統合
口座残高や契約内容の詳細など、リアルタイムの情報を必要とする問い合わせに対応する場合、RAGベースのアプローチを埋め込むだけでは不十分です。その代わりに、ツールの利用を活用することで、正確なリアルタイム応答を提供するチャットボットの能力を大幅に向上させることができます。例えば、ツールを使用して顧客情報を検索したり、注文の詳細を取得したり、顧客に代わって注文をキャンセルしたりすることができます。
この方法は、我々の ツール使用:カスタマーサービス・エージェント式 クロードの応答にリアルタイムデータをシームレスに統合し、よりパーソナライズされた効率的な顧客体験を提供することができます。
入出力保護対策の強化
チャットボットを導入する場合、特にカスタマーサービスシナリオでは、悪用、範囲外の問い合わせ、不適切な応答のリスクから保護することが重要です。Claudeは本質的にこれらのシナリオに耐性がありますが、ここではチャットボットのセーフガードを強化するための追加ステップを紹介します:
- 幻覚の減少ファクトチェックの実施 引用 回答が提供された情報に基づいていることを確認するため。
- 情報の照合:エージェントの対応が会社の方針および既知の事実と一致していることを確認する。
- 契約上の約束の回避:代理人が約束する権限のない約束や合意をしないようにする。
- 脱獄の緩和ユーザがモデルの脆弱性を悪用して不適切なコンテンツを生成するのを防ぐために、無害なスクリーニングや入力検証などの方法を使用する。
- 競合他社への言及を避ける:競合他社への言及フィルターを導入し、ブランドを集中させ、競合他社の製品やサービスへの言及を避ける。
- クロードの役割を維持するクロードが長く複雑なやりとりの中で、コンテクストスタイルを変えるのを防ぐ。
- 個人を特定できる情報(PII)の削除:明示的に要求され、承認された場合を除き、回答からすべてのPIIを削除する。
ストリーミング処理による知覚応答時間の短縮
ストリーミングを実装することで、長い回答になる可能性がある場合でも、ユーザーのエンゲージメントと満足度を大幅に向上させることができます。この場合、ユーザーはレスポンス全体が生成されるのを待つのではなく、徐々に回答を受け取ります。
以下は、ストリーム処理の実装手順である:
- 利用する Anthropic Streaming API ストリーミング返信に対応。
- 受信したテキスト・ブロックを処理するフロント・エンドを設定する。
- リアルタイム入力の効果をシミュレートするために、各到着に対してテキストのブロックを表示する。
- 返信の全文を保存する仕組みを導入し、ユーザーがナビゲーションを離れて戻ってきたときに、全文を表示できるようにする。
場合によっては、ストリーミングは、プログレッシブ表示が長い処理時間の影響を緩和するため、基本レイテンシーの高い高度なモデルの使用を可能にする。
チャットボットを拡張する
Chatbotの複雑さが増すにつれて、アプリケーション・アーキテクチャもそれに合わせて進化させることができます。アーキテクチャにさらなるレイヤーを追加する前に、以下のようなシンプルなオプションを検討してください:
- ヒントを最大限に活用し、ヒントエンジニアリングで最適化しましょう。私たちの 先端技術ガイド 最も効果的なヒントを書く。
- プロンプトに他人を加える アーティファクト (を含む キューチェーン)を使って、目的の機能が達成できるかどうかを確認する。
あなたのチャットボットが非常に多様なタスクを処理する場合、次のオプションを追加することを検討するとよいでしょう。 インテント分類器の分離 を作成する。既存のアプリケーションの場合、これは、顧客のクエリを分類器を通して特別なダイアログ(それぞれが独自のツールとシステムプロンプトを持つ)にルーティングする決定木を作成することを含む。このアプローチは、Claudeへの追加コールを必要とし、待ち時間を増やす可能性があることに注意。
サポートワークフローへのクロードの統合
この例ではStreamlit環境で呼び出せるPython関数に焦点を当てているが、ChatbotをリアルタイムでサポートするためにClaudeをデプロイするにはAPIサービスが必要だ。
これならできる:
- APIラッパーを作る:あなたの分類した関数のためのシンプルなAPIラッパーを開発しましょう。例えば、Flask APIやFast APIを使用して、コードをHTTPサービスとしてラップすることができます。このHTTPサービスは、ユーザーの入力を受け取り、完全なアシスタントのレスポンスを返すことができます。その結果、このサービスには次のような特性を持たせることができます:
- Server-Sent Events (SSE): SSEは、サーバーとクライアント間のリアルタイム・レスポンス・ストリーミングを可能にする。これは、LLMを使用する際にスムーズでインタラクティブな体験を提供するために非常に重要です。
- キャッシュ:キャッシュを実装することで、応答性を大幅に改善し、不要なAPIコールを減らすことができる。
- コンテキストの保持:コンテキストの保持は、ユーザーが離れたり戻ったりする際にダイアログを継続するために重要である。
- ウェブインターフェースの構築:クロード駆動エージェントと対話するためのユーザーフレンドリーなウェブUIを実装する。