簡単
AIエージェントにおけるメタ認知のコースへようこそ!この章は、AIエージェントが自分自身の思考プロセスについてどのように考えるかに興味のある初心者の方を対象としています。このコースが終了する頃には、重要な概念を理解し、AIエージェントの設計にメタ認知を適用するための実践的な例を手に入れることができます。
学習目標
このコースを修了すると、以下のことができるようになります:
- エージェント定義の推論ループの意味を理解する。
- プランニングと評価のテクニックを使って、エージェントの自己調整を行う。
- コードを操作してタスクを実行する独自のエージェントを作成できます。
メタ認知入門
メタ認知とは、自分自身の思考について考える高次の認知プロセスを指す。AIエージェントにとって、これは自己認識と過去の経験に基づいて自分の行動を評価し、調整できることを意味する。メタ認知、すなわち「思考について考えること」は、エージェントベースのAIシステムの開発において重要な概念である。これは、AIシステムが自身の内部プロセスを認識し、それに応じて行動を監視、調整、調節できるようになることを意味する。私たちが状況を見たり問題を検討したりするときのように。この自己認識は、AIシステムがより良い判断を下し、エラーを認識し、時間の経過とともにパフォーマンスを向上させるのに役立つ。
エージェントベースのAIシステムの文脈では、メタ認知は以下のようないくつかの課題を解決するのに役立つ:
- 透明性:AIシステムがその推論と決定を説明できるようにすること。
- 推論:AIシステムが情報を総合し、合理的な判断を下す能力を強化する。
- 適応性:AIシステムが新しい環境や状況の変化に適応できるようにする。
- 知覚:AIシステムが環境からのデータを認識・解釈する精度を向上させる。
メタ認知とは何か?
メタ認知、すなわち「思考について考えること」は、自己認識と認知プロセスの自己制御を含む高次の認知プロセスである。AIでは、メタ認知によってエージェントが自分の戦略や行動を評価し、適応させることで、問題解決や意思決定を改善することができます。メタ認知を理解することで、より賢いだけでなく、より適応的で効率的なAIエージェントを設計することができます。真のメタ認知では、AIが自身の推論について明確に推論するのを見ることができます。
例えば、"私は安いフライトを優先しています、なぜなら......直行便に乗り遅れたかもしれないので、再確認させてください"。.どのように、あるいはなぜ特定のルートを選んだのかを追跡する。
- 最終的な推薦だけでなく、意思決定戦略も修正した。
- 例えば、"ユーザーが「混雑しすぎている」と言及するのを見るたびに、私は特定のアトラクションを削除するだけでなく、常に人気でランク付けするならば、私の「人気アトラクション」を選択する方法は欠陥があるという事実を反省すべきである。欠陥がある"
AIエージェントにおけるメタ認知の重要性
メタ認知は、以下の理由から、AIエージェント設計において重要な役割を果たす:
- 自己省察:エージェントは自らのパフォーマンスを評価し、改善すべき点を特定することができる。
- 適応性:エージェントは、過去の経験や状況の変化に基づいて戦略を修正することができる。
- エラー修正: エージェントは、より正確な結果を得るために、自律的にエラーを検出し、修正することができます。
- リソース管理: エージェントは行動を計画し評価することで、時間や計算能力などのリソースの使用を最適化することができる。
AIエージェントの構成要素
メタ認知プロセスを掘り下げる前に、AIエージェントの基本的な構成要素を理解することが重要である:
- Persona (ペルソナ): エージェントの性格や特徴で、ユーザーとの関わり方を定義します。
- ツール:エージェントが実行できる機能と能力。
- スキル:エージェントの持つ知識や専門知識。
これらのコンポーネントは、特定のタスクを実行できる "専門ユニット "を作るために連携する。
典型例旅行代理店とは、単に休暇を計画するだけでなく、リアルタイムのデータと過去の顧客旅行経験に基づいてその経路を調整するエージェントサービスである。
例:旅行代理店サービスにおけるメタ認知
AIを活用した旅行代理店サービスを設計しているとします。このエージェント "Travel Agent "は、ユーザーの休暇の計画をサポートします。メタ認知を取り入れるために、旅行代理店は自己認識と過去の経験に基づいて行動を評価し、適応させる必要があります。メタ認知の仕組みはこうだ:
現在のタスク
現在のタスクは、ユーザーがパリへの旅行を計画するのを手助けすることである。
任務を果たすためのステップ
- ユーザー嗜好の収集ユーザーの旅行日程、予算、興味(美術館、グルメ、ショッピングなど)、具体的な要望を聞く。
- 取り出すユーザーの好みに合ったフライトオプション、宿泊施設、アトラクション、レストランを検索できます。
- 推薦文の作成フライト情報、ホテル予約、おすすめアクティビティなど、パーソナライズされた旅程を提供。
- フィードバックに基づく調整ユーザーに提案に対するフィードバックを求め、必要な調整を行う。
リソース要件
- フライトおよびホテル予約データベースへのアクセス。
- パリの観光スポットやレストラン情報。
- 過去のインタラクションからのユーザーフィードバックデータ。
経験と自己反省
旅行代理店はメタ認知を利用して業績を評価し、過去の経験から学びます。例
- ユーザーフィードバックの分析トラベルエージェントは、どの提案が受け入れられ、どの提案が受け入れられなかったかを判断するために、ユーザーからのフィードバックをレビューします。それに応じて、今後の推奨を調整します。
- 柔軟性混雑している場所が嫌いだと事前にユーザーが言っていた場合、旅行代理店は今後、ピーク時に人気の観光スポットを薦めないようにする。
- エラーの修正もし、旅行代理店が過去の予約でミスを犯した場合、例えば満室のホテルを推薦してしまった場合、推薦する前に空室状況をより厳密にチェックするようになる。
実際の開発者の例
これは、Travel Agentのコードをメタ認知と組み合わせるとどのようになるかを簡略化した例である:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
# Search for flights, hotels, and attractions based on preferences
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
# Analyze feedback and adjust future recommendations
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Example usage
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)
メタ認知が重要な理由
- 自己反省エージェントはそのパフォーマンスを分析し、改善のための領域を特定することができます。
- 柔軟性エージェントは、フィードバックや状況の変化に基づいてポリシーを変更することができます。
- エラーの修正エージェントは自律的にエラーを検出し、修正することができます。
- 資源管理エージェントは、時間やコンピューティングパワーなどのリソースの使用を最適化することができます。
メタ認知を取り入れることで、Travel Agentはよりパーソナライズされた正確な旅行アドバイスを提供し、全体的なユーザー体験を向上させることができる。
2.代理店でのプランニング
プランニングは、AIエージェントの行動の重要な要素です。これは、現在の状態、リソース、起こりうる障害を考慮しながら、目標を達成するために必要なステップを概説することを含む。
プランニングの要素
- 現在のタスク任務の明確な定義
- 任務を果たすためのステップタスクを管理しやすいステップに分解する。
- リソース要件必要なリソースを特定する。
- 経験過去の経験を計画の指針にする。
典型例旅行代理店は、利用者が効果的に旅行計画を立てられるよう、以下のステップを踏む必要があります:
旅行代理店のステップ
- ユーザー嗜好の収集
- 旅行日程、予算、興味、具体的な要望などを詳しくユーザーに尋ねる。
- 例:「いつ頃ご旅行のご予定ですか?「予算はどのくらいですか?「休暇中はどんなアクティビティを楽しみますか?
- 取り出す
- ユーザーの好みに基づいて、関連する旅行オプションを検索します。
- 定期航行ご予算とご旅行の日程に合ったフライトを検索します。
- 滞在場所、価格、アメニティなど、ユーザーの好みに合ったホテルや賃貸物件を検索できます。
- アトラクションとレストランユーザーの興味に合った人気のアトラクション、アクティビティ、レストランを特定する。
- 推薦文の作成
- 検索された情報を個人用の旅程にまとめる。
- フライトオプション、ホテル予約、提案されるアクティビティの詳細を提供することで、ユーザーの好みに合わせて提案をカスタマイズすることができます。
- 旅程を表示する
- 提案された旅程はユーザーと共有され、検討される。
- 例:「これはパリ旅行の旅程表です。フライトの詳細、ホテルの予約、おすすめのアクティビティやレストランのリストが含まれています。ご感想をお聞かせください!"
- フィードバックの収集
- 提案された旅程について、利用者にフィードバックを求める。
- 例:「フライトオプションはお気に召しましたか?「ホテルはご希望に合いますか?「アクティビティは追加しますか?
- フィードバックに基づく調整
- ユーザーからのフィードバックに基づいて旅程を変更する。
- ユーザーの嗜好に合うよう、フライト、宿泊施設、アクティビティの提案に必要な変更を加える。
- 最終確認
- 最終確認のため、更新された旅程をユーザーに表示する。
- 例:「ご意見を参考に調整しました。こちらが最新の旅程表です。問題ないでしょうか?"
- 予約と予約確認
- ユーザーが旅程を承認したら、フライト、宿泊施設、事前に計画したアクティビティの予約に進みます。
- 確認の詳細をユーザーに送信します。
- 継続的なサポートの提供
- 旅行前および旅行中、変更またはその他のご要望がある場合は、いつでも利用者をサポートします。
- 例:"ご旅行中に何かお困りのことがありましたら、お気軽にご連絡ください!"
相互作用の例
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
# Example usage within a booing request
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
travel_agent.adjust_based_on_feedback(feedback)
3.修正RAGシステム
まず、理解しよう ラグ 道具とコンテクスト化されたローディングの違い。
検索機能拡張ジェネレーション(RAG)
RAGは検索システムと生成モデルを組み合わせたものである。クエリーが行われると、検索システムは外部ソースから関連文書やデータを取得し、この取得した情報を使って生成モデルへの入力を補強する。これにより、モデルはより正確で文脈に即した応答を生成することができる。
RAGシステムでは、知的身体(エージェント)が知識ベースから関連情報を検索し、それを使って適切な応答や行動を生成する。
修正RAG法
修正RAGアプローチは、エラーを修正し、AIインテリジェンス(エージェント)の精度を向上させるためにRAG技術を使用することに焦点を当てています。これには以下が含まれます:
- キュー・テクノロジーエージェントが関連情報を検索できるように、特定のプロンプトを使用する。
- アーティファクトインテリジェント・エージェント(エージェント)が検索された情報の関連性を評価し、正確な応答を生成できるようなアルゴリズムとメカニズムを実装する。
- 評価インテリジェントボディ(エージェント)の性能を継続的に評価し、その精度や効率を向上させるための調整を行う。
例:サーチインテリジェンス(エージェント)における修正RAG
ユーザーのクエリに答えるためにウェブから情報を検索するサーチインテリジェンス(エージェント)を考える。修正されたRAGメソッドには以下のようなものがある:
- キュー・テクノロジーユーザーの入力をもとに検索クエリを作成します。
- アーティファクト自然言語処理と機械学習アルゴリズムを使用して、検索結果をランク付けし、フィルタリングします。
- 評価ユーザーからのフィードバックを分析し、検索された情報の不正確さを特定し、修正する。
トラベリング・インテリジェンス(エージェント)における修正RAG
修正RAG(Retrieval Augmented Generation)は、不正確な情報を修正しながら情報を検索・生成するAIの能力を強化する。ここでは、Travel Agentがどのように修正RAGアプローチを使用して、より正確で関連性の高い旅行推奨情報を提供しているか見てみましょう。
これには以下が含まれる:
- キュー・テクノロジー 特定のプロンプトを使用して、エージェントが関連情報を検索できるように誘導する。
- 道具だ: インテリジェント・エージェント(エージェント)が検索された情報の関連性を評価し、正確な応答を生成できるアルゴリズムとメカニズムを実装する。
- 評価だ: インテリジェンス(エージェント)のパフォーマンスを継続的に評価し、その精度と効率を高めるための調整を行う。
旅行代理店における修正RAGの導入手順
- 初期ユーザー・インタラクション
- 旅行代理店は、目的地、旅行日程、予算、興味など、ユーザーの初期設定を収集します。
- 例
preferences = { "destination": "Paris", "dates": "2025-04-01 to 2025-04-10", "budget": "moderate", "interests": ["museums", "cuisine"] }
- 情報検索
- トラベルエージェントは、ユーザーの好みに基づいて、フライト、宿泊施設、アトラクション、レストランに関する情報を検索します。
- 例
flights = search_flights(preferences) hotels = search_hotels(preferences) attractions = search_attractions(preferences)
- 初期推奨事項の作成
- 旅行代理店は、取得した情報を使用して、パーソナライズされた旅程を作成します。
- 例
itinerary = create_itinerary(flights, hotels, attractions) print("Suggested Itinerary:", itinerary)
- ユーザーフィードバックの収集
- 旅行代理店は、ユーザーに最初の推薦についてのフィードバックを求めます。
- 例
feedback = { "liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"] }
- 修正RAGプロセス
- キュー・テクノロジートラベルエージェントは、ユーザーからのフィードバックに基づいて新しい検索クエリを開発します。
- 例
if "disliked" in feedback: preferences["avoid"] = feedback["disliked"]
- 例
- アーティファクトトラベルエージェントは、アルゴリズムを使用して新しい検索結果をランク付け、フィルタリングし、ユーザーからのフィードバックに基づいて関連性を強調します。
- 例
new_attractions = search_attractions(preferences) new_itinerary = create_itinerary(flights, hotels, new_attractions) print("Updated Itinerary:", new_itinerary)
- 例
- 評価トラベルエージェントは、ユーザーからのフィードバックを分析し、必要に応じて調整を行うことで、推奨事項の妥当性と正確性を継続的に評価しています。
- 例
def adjust_preferences(preferences, feedback): if "liked" in feedback: preferences["favorites"] = feedback["liked"] if "disliked" in feedback: preferences["avoid"] = feedback["disliked"] return preferences preferences = adjust_preferences(preferences, feedback)
- 例
- キュー・テクノロジートラベルエージェントは、ユーザーからのフィードバックに基づいて新しい検索クエリを開発します。
実例
これは、Travel Agentが修正されたRAGアプローチを使用する簡略化されたPythonコードの例です:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
itinerary = create_itinerary(flights, hotels, attractions)
return itinerary
def adjust_based_on_feedback(self, feedback):
self.experience_data.append(feedback)
self.user_preferences = adjust_preferences(self.user_preferences, feedback)
new_itinerary = self.generate_recommendations()
return new_itinerary
# Example usage
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
new_itinerary = travel_agent.adjust_based_on_feedback(feedback)
print("Updated Itinerary:", new_itinerary)
プレコンテキストローディング
プレコンテキストローディングは、クエリが処理される前に、関連するコンテキストや背景情報をモデルにロードします。これは、モデルが最初からこの情報にアクセスできることを意味し、処理中に追加のデータを取得することなく、より情報に基づいた応答を生成するのに役立ちます。
以下は、Travel Agent アプリケーションにおけるプレコンテキストローディングの Python 実装の簡略化した例です:
class TravelAgent:
def __init__(self):
# Pre-load popular destinations and their information
self.context = {
"Paris": {"country": "France", "currency": "Euro", "language": "French", "attractions": ["Eiffel Tower", "Louvre Museum"]},
"Tokyo": {"country": "Japan", "currency": "Yen", "language": "Japanese", "attractions": ["Tokyo Tower", "Shibuya Crossing"]},
"New York": {"country": "USA", "currency": "Dollar", "language": "English", "attractions": ["Statue of Liberty", "Times Square"]},
"Sydney": {"country": "Australia", "currency": "Dollar", "language": "English", "attractions": ["Sydney Opera House", "Bondi Beach"]}
}
def get_destination_info(self, destination):
# Fetch destination information from pre-loaded context
info = self.context.get(destination)
if info:
return f"{destination}:\nCountry: {info['country']}\nCurrency: {info['currency']}\nLanguage: {info['language']}\nAttractions: {', '.join(info['attractions'])}"
else:
return f"Sorry, we don't have information on {destination}."
# Example usage
travel_agent = TravelAgent()
print(travel_agent.get_destination_info("Paris"))
print(travel_agent.get_destination_info("Tokyo"))
指示
- 初期化 (
__init__
メソッド)::TravelAgent
クラスには、パリ、東京、ニューヨーク、シドニーといった人気の旅行先に関する情報を含む辞書があらかじめ搭載されています。この辞書には、それぞれの目的地の国、通貨、言語、主なアトラクションに関する詳細情報が含まれています。 - 情報の取得 (
get_destination_info
メソッド)ユーザーが特定の目的地を問い合わせた場合get_destination_info
メソッドは、事前にロードされたコンテキスト辞書から関連情報を取得します。
コンテキストをプリロードすることで、旅行代理店アプリケーションは、リアルタイムで外部ソースからこの情報を取得することなく、ユーザーのクエリに迅速に応答することができます。これにより、アプリケーションの効率性と応答性が向上します。
反復の前に、目標指向の計画を使う
目標指向計画では、最初から明確な目的または望ましい結果を念頭に置く。この目標をあらかじめ定義しておくことで、反復プロセス全体を通じて、モデルを指針として使用することができる。これにより、各反復が確実に望ましい結果の達成に近づき、プロセスがより効率的かつ集中的になる。
PythonでTravel Agentのために反復の前にゴール指向の旅行計画を使用する方法を示す例を示します:
取る
旅行代理店は、顧客のためにオーダーメイドの休暇を計画したいと考えている。目標は、顧客の好みと予算に基づいて旅程を作成し、顧客の満足度を最大限に高めることである。
動く
- 顧客の好みと予算を明確にする。
- これらの嗜好に従って、最初のプランに舵を切る。
- 顧客満足度を最大化するために、計画を最適化する。
パイソンコード
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def bootstrap_plan(self, preferences, budget):
plan = []
total_cost = 0
for destination in self.destinations:
if total_cost + destination['cost'] <= budget and self.match_preferences(destination, preferences):
plan.append(destination)
total_cost += destination['cost']
return plan
def match_preferences(self, destination, preferences):
for key, value in preferences.items():
if destination.get(key) != value:
return False
return True
def iterate_plan(self, plan, preferences, budget):
for i in range(len(plan)):
for destination in self.destinations:
if destination not in plan and self.match_preferences(destination, preferences) and self.calculate_cost(plan, destination) <= budget:
plan[i] = destination
break
return plan
def calculate_cost(self, plan, new_destination):
return sum(destination['cost'] for destination in plan) + new_destination['cost']
# Example usage
destinations = [
{"name": "Paris", "cost": 1000, "activity": "sightseeing"},
{"name": "Tokyo", "cost": 1200, "activity": "shopping"},
{"name": "New York", "cost": 900, "activity": "sightseeing"},
{"name": "Sydney", "cost": 1100, "activity": "beach"},
]
preferences = {"activity": "sightseeing"}
budget = 2000
travel_agent = TravelAgent(destinations)
initial_plan = travel_agent.bootstrap_plan(preferences, budget)
print("Initial Plan:", initial_plan)
refined_plan = travel_agent.iterate_plan(initial_plan, preferences, budget)
print("Refined Plan:", refined_plan)
コードの説明
- 初期化 (
__init__
メソッド)::TravelAgent
このクラスは、名前、費用、アクティビティタイプなどの属性を持つ目的地候補のリストを使用して初期化されます。 - オリエンテーション・プログラム
bootstrap_plan
メソッド)このメソッドは、顧客の好みと予算に基づいて最初の旅行プランを作成します。目的地のリストを繰り返し、顧客の好みに合い、予算に合う目的地をプランに追加します。 - マッチング・プリファレンス (
match_preferences
メソッド)このメソッドは、目的地が顧客の好みに合っているかどうかをチェックします。 - 反復計画 (
iterate_plan
メソッド)この方法は、顧客の嗜好と予算の制約を考慮しながら、プラン内の各目的地をより適合性の高いものに置き換えることで、初期プランを最適化する。 - コスト計算 (
calculate_cost
メソッド)この方法は、潜在的な新しい行き先も含めて、現在のプログラムの総コストを計算する。
使用例
- 初期計画旅行代理店は、顧客の観光の好みと2,000ドルの予算に基づいて最初のプランを作成する。
- 最適化計画旅行代理店の反復プログラム、顧客の嗜好と予算に最適化。
明確な目的(顧客満足度の最大化など)を設定し、プランを最適化するための反復作業を行うことで、トラベルエージェントはお客様のためにカスタマイズされた最適な旅程を作成します。このアプローチにより、旅行プランは当初からお客様の嗜好やご予算に沿ったものとなり、反復するたびに改善されていきます。
大規模言語モデル(LLM)による並べ替えとスコアリング
大規模言語モデル(LLM)は、検索されたドキュメントや生成されたレスポンスの関連性と品質を評価することで、並べ替えやスコア付けに使用することができる。LLMは次のように動作する:
取得した: 最初の検索ステップでは、クエリに基づいて候補となる文書や応答のセットを取得する。
並び替え: LLMはこれらの候補を評価し、関連性と品質に従って並び替えます。このステップにより、最も関連性が高く、質の高い情報が最初に表示されるようになります。
格付け LLMは各候補オブジェクトに関連性と品質を反映したスコアを割り当てる。これはユーザーにとって最適な回答や文書を選択するのに役立つ。
並び替えとスコアリングにLLMを利用することで、システムはより正確で文脈に関連した情報を提供することができ、全体的なユーザー体験を向上させることができる。
ここでは、旅行代理店が大規模言語モデル(LLM)を使用して、Pythonでユーザーの好みに基づいて目的地を並べ替えたり、評価したりする例を紹介する:
シナリオ - プレファレンスに基づく旅行
旅行代理店は、顧客の好みに基づいて最適な旅行先を薦めたいと考えている。LLMは、最も適切な選択肢が提示されるように、旅行先を再ソートし、格付けするのに役立つ。
ステップ
- ユーザーの好みを収集する。
- 旅行先の候補リストを取得する。
- LLMを使用して、ユーザーの好みに基づいて目的地を並べ替えたり評価したりします。
ここでは、Azure OpenAIサービスを使用するために、前の例を更新する方法を説明します:
リクエスト
- Azureのサブスクリプションが必要です。
- Azure OpenAIリソースを作成し、APIキーを取得します。
サンプルPythonコード
import requests
import json
class TravelAgent:
def __init__(self, destinations):
self.destinations = destinations
def get_recommendations(self, preferences, api_key, endpoint):
# 为 Azure OpenAI 生成提示
prompt = self.generate_prompt(preferences)
# 定义请求的标头和负载
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {api_key}'
}
payload = {
"prompt": prompt,
"max_tokens": 150,
"temperature": 0.7
}
# 调用 Azure OpenAI API 以获取重新排序和评分的目的地
response = requests.post(endpoint, headers=headers, json=payload)
response_data = response.json()
# 提取并返回建议
recommendations = response_data['choices'][0]['text'].strip().split('\n')
return recommendations
def generate_prompt(self, preferences):
prompt = "以下是根据以下用户偏好排名和评分的旅游目的地:\n"
for key, value in preferences.items():
prompt += f"{key}: {value}\n"
prompt += "\n目的地:\n"
for destination in self.destinations:
prompt += f"- {destination['name']}: {destination['description']}\n"
return prompt
# 示例用法
destinations = [
{"name": "Paris", "description": "光之城,以其艺术、时尚和文化而闻名。"},
{"name": "Tokyo", "description": "充满活力的城市,以其现代性和传统寺庙而闻名。"},
{"name": "New York", "description": "不夜城,拥有标志性地标和多元文化。"},
{"name": "Sydney", "description": "美丽的海港城市,以其歌剧院和迷人的海滩而闻名。"},
]
preferences = {"activity": "sightseeing", "culture": "diverse"}
api_key = 'your_azure_openai_api_key'
endpoint = 'https://your-endpoint.com/openai/deployments/your-deployment-name/completions?api-version=2022-12-01'
travel_agent = TravelAgent(destinations)
recommendations = travel_agent.get_recommendations(preferences, api_key, endpoint)
print("推荐目的地:")
for rec in recommendations:
print(rec)
コード説明 - プリファレンス・ブッカー
- 初期化::
TravelAgent
このクラスは、それぞれ名前や説明などの属性を持つ、旅行先候補のリストを使って初期化されます。 - アドバイスを受ける
get_recommendations
方法このメソッドは、ユーザーの好みに基づいてAzure OpenAIサービスのプロンプトを生成し、並べ替えとスコアリング先のためにAzure OpenAI APIにHTTP POSTリクエストを送信します。 - プロンプト (
generate_prompt
方法このメソッドは、ユーザーの好みと目的地のリストを含むAzure OpenAI用のプロンプトを作成します。このキューは、提供された好みに基づいて目的地の順序を変更し、スコアを付けるようにモデルに指示します。 - APIコール::
requests
Azure OpenAI API のエンドポイントに HTTP POST リクエストを行うためのライブラリです。レスポンスには、並べ替えられた宛先とスコアリングされた宛先が含まれます。 - 使用例旅行代理店は、ユーザーの嗜好(観光や多文化主義への関心など)を収集し、Azure OpenAIサービスを使用して、旅行先の再ランク付けと格付けの提案を得る。
保証 your_azure_openai_api_key
このキーを実際の Azure OpenAI API キーに置き換えてください。 https://your-endpoint.com/...
Azure OpenAI デプロイの実際のエンドポイント URL に置き換えてください。
LLMを再注文とスコアリングに活用することで、旅行代理店は顧客によりパーソナライズされた適切な旅行アドバイスを提供することができ、全体的な体験を向上させることができる。
{技術ドメイン評論家シャープ:上記のコード例は、大規模な言語モデルを使用してコンテンツをどのように並べ替え、スコアリングできるかを明確に示している。これは TravelAgent
クラスとAzure OpenAIサービスを組み合わせることで、ユーザーの好みに基づいてパーソナライズされた旅行推奨を効果的に提供することができる。このアプローチは、レコメンデーションの精度を向上させるだけでなく、ユーザーエクスペリエンスを向上させる。}
RAG:プロンプティングのテクニックとツール
Retrieval Augmented Generation (RAG)は、AIエージェント開発において、プロンプトのテクニックでもあり、ツールでもあります。この2つの違いを理解することで、プロジェクトでRAGをより効果的に活用することができます。
プロンプティング・テクニックとしてのRAG
それは何ですか?
- プロンプト技術として、RAGは大規模なコーパスやデータベースから関連情報を検索するための特定のクエリーやプロンプトを作成する。この情報は、応答やアクションを生成するために使用される。
どのように機能するのか:
- 開発のヒント手元のタスクやユーザー入力に基づいて、構造化されたプロンプトやクエリーを作成します。
- 取り出すプロンプトを使用して、既存の知識ベースやデータセットから関連データを検索します。
- レスポンスの生成検索された情報をAI生成モデルと組み合わせ、包括的で首尾一貫した回答を生み出す。
旅行代理店の例::
- パリの美術館に行きたい。
- キュー:"パリのトップ美術館を探せ"
- 取得情報:ルーヴル美術館、オルセー美術館などの詳細情報。
- ルーブル美術館、オルセー美術館、ポンピドゥー・センターです」。
ツールとしてのRAG
それは何ですか?
- ツールとしてのRAGは、検索と生成のプロセスを自動化する統合システムであり、開発者はクエリごとにプロンプトを手動で作成することなく、複雑なAI機能を簡単に実装できる。
どのように機能するのか:
- インテグレーテッドRAGをAIエージェントのアーキテクチャに組み込むことで、検索と生成のタスクを自動化することができます。
- 自動このツールは、ユーザーの入力を受けてから最終的な応答を生成するまでのプロセス全体を管理する。
- 効率検索と生成のプロセスを簡素化することで、エージェントのパフォーマンスを向上させ、より迅速で正確なレスポンスを実現します。
旅行代理店の例::
- パリの美術館に行きたい。
- RAGツール:美術館に関する情報を自動的に検索し、回答を生成する。
- ルーブル美術館、オルセー美術館、ポンピドゥー・センターです」。
{技術批評家のコメント: RAGをヒンティング技術として説明することと、ツールとして説明することの区別は重要である。ヒンティング技術としてのRAGは、クエリを手動で作成することの重要性を強調している。ツールとしてのRAGは、自動化と統合を強調している。どちらのアプローチにも利点があり、特定のニーズに応じて柔軟に選択することができる。}
比較
遠近法 | キュー・テクノロジー | アーティファクト |
---|---|---|
マニュアルとオートマチック | クエリごとにプロンプトを手動で作成する。 | 検索と生成のプロセスを自動化する。 |
封じ込め | 検索プロセスをよりコントロールできる。 | 検索と生成の簡素化と自動化。 |
熟練 | 特定のニーズに合わせてプロンプトをカスタマイズできる。 | より効率的な大規模導入。 |
ひとずれ | ヒントを作り、調整する必要がある。 | AIエージェントのアーキテクチャへの統合がより簡単に。 |
実例
キューイング・テクニックの例:
def search_museums_in_paris():
prompt = "Find top museums in Paris"
search_results = search_web(prompt)
return search_results
museums = search_museums_in_paris()
print("Top Museums in Paris:", museums)
ツールの例:
class Travel_Agent:
def __init__(self):
self.rag_tool = RAGTool()
def get_museums_in_paris(self):
user_input = "I want to visit museums in Paris."
response = self.rag_tool.retrieve_and_generate(user_input)
return response
travel_agent = Travel_Agent()
museums = travel_agent.get_museums_in_paris()
print("Top Museums in Paris:", museums)
評:表と具体的なコード例を比較することで、プロンプト技術とツールの違いが明確に示されている。手作業によるヒント作成は、より柔軟でコントロールしやすく、ツールは自動化によって効率を高める。これにより、開発者はプロジェクトのニーズとリソースに基づいて、より多くの情報に基づいた選択を行うことができる。
関連性の評価
関連性を評価することは、AIエージェントのパフォーマンスの重要な側面です。エージェントが検索・生成する情報が適切で、正確で、ユーザーにとって有用であることを保証します。実践的な例やヒントを含め、AIエージェントにおける関連性の評価方法を探ってみましょう。
関連性を評価するための主要概念
- 状況認識::
- エージェントは、関連する情報を検索し生成するために、ユーザのクエリのコンテキストを理解する必要があります。
- 例: ユーザが "パリのベストレストラン "を尋ねた場合、エージェントは料理のタイプや予算などユーザの好みを考慮する必要があります。
- 精度::
- 代理店から提供される情報は、事実に基づき正確かつ最新のものでなければならない。
- 例:時代遅れのレストランや閉店したレストランではなく、現在営業中で口コミの良いレストランを提案する。
- ユーザーの意図::
- エージェントは、ユーザーのクエリの背後にある意図を推測し、最も関連性の高い情報を提供する必要があります。
- 例: ユーザーが "格安ホテル "を要求した場合、エージェントは手頃な価格のオプションを優先します。
- フィードバックループ::
- ユーザーからのフィードバックを継続的に収集・分析することで、Agentは関連性評価プロセスを改善することができます。
- 例:ユーザーの評価と過去の推薦に対するフィードバックを組み合わせ、今後の対応を改善する。
関連性を評価するための実践的なヒント
- 関連スコア::
- 各検索項目には、ユーザーのクエリと嗜好にどれだけマッチしているかに基づいて、関連性スコアが割り当てられる。
- 例
def relevance_score(item, query): score = 0 if item['category'] in query['interests']: score += 1 if item['price'] <= query['budget']: score += 1 if item['location'] == query['destination']: score += 1 return score
- フィルタリングとソート::
- 無関係なアイテムをフィルタリングし、残りのアイテムを関連性スコアに基づいてランク付けする。
- 例
def filter_and_rank(items, query): ranked_items = sorted(items, key=lambda item: relevance_score(item, query), reverse=True) return ranked_items[:10] # 返回前 10 个相关项目
- 自然言語処理(NLP)::
- ユーザーのクエリを理解し、関連情報を取得するためにNLP技術を使用します。
- 例
def process_query(query): # 使用 NLP 从用户的查询中提取关键信息 processed_query = nlp(query) return processed_query
- ユーザーフィードバックの統合::
- 提供されたアドバイスに関するユーザーのフィードバックを収集し、今後の関連性評価の調整に役立てる。
- 例
def adjust_based_on_feedback(feedback, items): for item in items: if item['name'] in feedback['liked']: item['relevance'] += 1 if item['name'] in feedback['disliked']: item['relevance'] -= 1 return items
例:旅行代理店における関連性の評価
以下は、Travel Agentが推奨する旅行の妥当性を評価する方法の実例です:
class Travel_Agent:
def __init__(self):
self.user_preferences = {}
self.experience_data = []
def gather_preferences(self, preferences):
self.user_preferences = preferences
def retrieve_information(self):
flights = search_flights(self.user_preferences)
hotels = search_hotels(self.user_preferences)
attractions = search_attractions(self.user_preferences)
return flights, hotels, attractions
def generate_recommendations(self):
flights, hotels, attractions = self.retrieve_information()
ranked_hotels = self.filter_and_rank(hotels, self.user_preferences)
itinerary = create_itinerary(flights, ranked_hotels, attractions)
return itinerary
def filter_and_rank(self, items, query):
ranked_items = sorted(items, key=lambda item: self.relevance_score(item, query), reverse=True)
return ranked_items[:10] # 返回前 10 个相关项目
def relevance_score(self, item, query):
score = 0
if item['category'] in query['interests']:
score += 1
if item['price'] <= query['budget']:
score += 1
if item['location'] == query['destination']:
score += 1
return score
def adjust_based_on_feedback(self, feedback, items):
for item in items:
if item['name'] in feedback['liked']:
item['relevance'] += 1
if item['name'] in feedback['disliked']:
item['relevance'] -= 1
return items
# 示例用法
travel_agent = Travel_Agent()
preferences = {
"destination": "Paris",
"dates": "2025-04-01 to 2025-04-10",
"budget": "moderate",
"interests": ["museums", "cuisine"]
}
travel_agent.gather_preferences(preferences)
itinerary = travel_agent.generate_recommendations()
print("Suggested Itinerary:", itinerary)
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_items = travel_agent.adjust_based_on_feedback(feedback, itinerary['hotels'])
print("Updated Itinerary with Feedback:", updated_items)
意図的な探索
意図的検索とは、最も関連性の高い有益な情報を検索・生成するために、ユーザーのクエリの背後にある根本的な目的や目標を理解・解釈することである。このアプローチは、単にキーワードをマッチングさせるだけでなく、ユーザーの実際のニーズとコンテキストを把握することに重点を置いている。
意図的探索の主要概念
- ユーザーの意図を理解する::
- ユーザーの意図は、主に3つのタイプに分類することができます:情報、ナビゲーショナル、トランザクショナル。
- 情報提供の意図: あるトピックに関する情報を求めているユーザー(例:「パリで一番の美術館は?).
- ナビゲーションの意図例:「ルーヴル美術館公式サイト」)。
- 取引の意図例:"パリ行きのフライトを予約する")。
- ユーザーの意図は、主に3つのタイプに分類することができます:情報、ナビゲーショナル、トランザクショナル。
- 状況認識::
- ユーザーのクエリのコンテキストを分析することは、ユーザーの意図を正確に特定するのに役立ちます。これには、以前のやりとり、ユーザーの好み、現在のクエリの具体的な詳細を考慮することが含まれます。
- 自然言語処理(NLP)::
- 自然言語処理技術は、ユーザーから提供された自然言語のクエリを理解し、解釈するために使用される。これには、エンティティ認識、センチメント分析、クエリ解析などのタスクが含まれます。
- パーソナル::
- ユーザーの履歴、好み、フィードバックに基づいて検索結果をパーソナライズすることで、検索された情報の関連性を向上させることができる。
実例:旅行代理店における意図的検索
意図的な検索を実現する方法の例として、Travel Agentを見てみよう。
- ユーザー嗜好の収集
class Travel_Agent: def __init__(self): self.user_preferences = {} def gather_preferences(self, preferences): self.user_preferences = preferences
- ユーザーの意図を理解する
def identify_intent(query): if "book" in query or "purchase" in query: return "transactional" elif "website" in query or "official" in query: return "navigational" else: return "informational"
- 状況認識
def analyze_context(query, user_history): # 将当前查询与用户历史记录相结合以理解情境 context = { "current_query": query, "user_history": user_history } return context
- 検索とパーソナライズされた結果
def search_with_intent(query, preferences, user_history): intent = identify_intent(query) context = analyze_context(query, user_history) if intent == "informational": search_results = search_information(query, preferences) elif intent == "navigational": search_results = search_navigation(query) elif intent == "transactional": search_results = search_transaction(query, preferences) personalized_results = personalize_results(search_results, user_history) return personalized_results def search_information(query, preferences): # 信息型意图的示例搜索逻辑 results = search_web(f"best {preferences['interests']} in {preferences['destination']}") return results def search_navigation(query): # 导航型意图的示例搜索逻辑 results = search_web(query) return results def search_transaction(query, preferences): # 交易型意图的示例搜索逻辑 results = search_web(f"book {query} to {preferences['destination']}") return results def personalize_results(results, user_history): # 示例个性化逻辑 personalized = [result for result in results if result not in user_history] return personalized[:10] # 返回前 10 个个性化结果
- 使用例
travel_agent = Travel_Agent() preferences = { "destination": "Paris", "interests": ["museums", "cuisine"] } travel_agent.gather_preferences(preferences) user_history = ["Louvre Museum website", "Book flight to Paris"] query = "best museums in Paris" results = search_with_intent(query, preferences, user_history) print("Search Results:", results)
4.ツールとしてのコード生成
コード生成インテリジェンス(エージェント)は、AIモデルを使ってコードを書き、実行し、複雑な問題を解決し、タスクを自動化する。
コード生成インテリジェンス
コード生成知能は、生成AIモデルを使用してコードを書き、実行する。これらの知能は、様々なプログラミング言語でコードを生成し実行することで、複雑な問題を解決し、タスクを自動化し、価値ある洞察を提供することができる。
実用
- 自動コード生成データ分析、ウェブクローリング、機械学習など、特定のタスクのためのコードスニペットを生成します。
- RAGとしてのSQLSQL クエリを使用してデータベースからデータを取得し、操作する。
- 問題解決アルゴリズムの最適化やデータの分析など、特定の問題を解決するためのコードを作成し、実行すること。
例:データ分析のためのコード生成インテリジェンス
あなたがコード生成知能を設計しているとしよう。それがどのように機能するかを考えてみよう:
- マンデートデータセットを分析し、傾向とパターンを特定する。
- 動く::
- データセットをデータ分析ツールにロードする。
- SQLクエリを生成し、データのフィルタリングや集計を行う。
- クエリーを実行し、結果を取得する。
- 結果を使用して、視覚化と洞察を生成します。
- リソース要件データセット、データ分析ツール、SQL関数へのアクセス。
- 経験将来の分析の精度と妥当性を高めるために、過去の分析を利用する。
例:旅行代理店のためのコード生成インテリジェンス
この例では、コードを生成して実行することで、ユーザーの旅行計画を支援するコード生成インテリジェンス「Travel Agent」を設計します。このインテリジェンスは、生成AIを使用して、旅行オプションの取得、結果のフィルタリング、旅程のコンパイルなどのタスクを処理できます。
コード生成インテリジェンスの概要
- ユーザー嗜好の収集目的地、旅行日、予算、興味などのユーザー入力を収集します。
- データを取得するコードを生成するフライト、ホテル、アトラクションに関するデータを取得するコードスニペットを生成します。
- 生成されたコードを実行する生成されたコードを実行すると、リアルタイムの情報が得られます。
- トリップの作成取得したデータを個人用の旅行計画にまとめる。
- フィードバックに基づく調整ユーザーからのフィードバックを受け、必要に応じてコードを再生成し、結果を最適化する。
一歩一歩
- ユーザー嗜好の収集
class Travel_Agent: def __init__(self): self.user_preferences = {} def gather_preferences(self, preferences): self.user_preferences = preferences
- データを取得するコードを生成する
def generate_code_to_fetch_data(preferences): # 示例:生成代码以根据用户偏好搜索航班 code = f""" def search_flights(): import requests response = requests.get('https://api.example.com/flights', params={preferences}) return response.json() """ return code def generate_code_to_fetch_hotels(preferences): # 示例:生成代码以搜索酒店 code = f""" def search_hotels(): import requests response = requests.get('https://api.example.com/hotels', params={preferences}) return response.json() """ return code
- 生成されたコードを実行する
def execute_code(code): # 使用 exec 执行生成的代码 exec(code) result = locals() return result travel_agent = Travel_Agent() preferences = { "destination": "Paris", "dates": "2025-04-01 to 2025-04-10", "budget": "moderate", "interests": ["museums", "cuisine"] } travel_agent.gather_preferences(preferences) flight_code = generate_code_to_fetch_data(preferences) hotel_code = generate_code_to_fetch_hotels(preferences) flights = execute_code(flight_code) hotels = execute_code(hotel_code) print("Flight Options:", flights) print("Hotel Options:", hotels)
- トリップの作成
def generate_itinerary(flights, hotels, attractions): itinerary = { "flights": flights, "hotels": hotels, "attractions": attractions } return itinerary attractions = search_attractions(preferences) itinerary = generate_itinerary(flights, hotels, attractions) print("Suggested Itinerary:", itinerary)
- フィードバックに基づく調整
def adjust_based_on_feedback(feedback, preferences): # 根据用户反馈调整偏好 if "liked" in feedback: preferences["favorites"] = feedback["liked"] if "disliked" in feedback: preferences["avoid"] = feedback["disliked"] return preferences feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]} updated_preferences = adjust_based_on_feedback(feedback, preferences) # 使用更新的偏好重新生成并执行代码 updated_flight_code = generate_code_to_fetch_data(updated_preferences) updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences) updated_flights = execute_code(updated_flight_code) updated_hotels = execute_code(updated_hotel_code) updated_itinerary = generate_itinerary(updated_flights, updated_hotels, attractions) print("Updated Itinerary:", updated_itinerary)
環境認識と推論の活用
テーブルスキーマによれば、クエリ生成プロセスは、コンテキスト認識と推論を利用することによって、確かに向上させることができる。
以下にその例を示す:
- パターンを理解するシステムはテーブルスキーマを理解し、この情報を使ってクエリー生成の基礎を決定する。
- フィードバックに基づく調整システムは、スキーマ内の更新が必要なフィールドに関するフィードバックと理由に基づいて、ユーザーの好みを調整する。
- クエリーの生成と実行システムは、新しい好みに基づいて更新されたフライトとホテルのデータを取得するために、クエリーを生成して実行します。
以下は、これらの概念を取り入れたPythonのコード例である:
def adjust_based_on_feedback(feedback, preferences, schema):
# 根据用户反馈调整偏好
if "liked" in feedback:
preferences["favorites"] = feedback["liked"]
if "disliked" in feedback:
preferences["avoid"] = feedback["disliked"]
# 根据模式进行推理以调整其他相关偏好
for field in schema:
if field in preferences:
preferences[field] = adjust_based_on_environment(feedback, field, schema)
return preferences
def adjust_based_on_environment(feedback, field, schema):
# 根据模式和反馈调整偏好的自定义逻辑
if field in feedback["liked"]:
return schema[field]["positive_adjustment"]
elif field in feedback["disliked"]:
return schema[field]["negative_adjustment"]
return schema[field]["default"]
def generate_code_to_fetch_data(preferences):
# 生成代码以根据更新的偏好获取航班数据
return f"fetch_flights(preferences={preferences})"
def generate_code_to_fetch_hotels(preferences):
# 生成代码以根据更新的偏好获取酒店数据
return f"fetch_hotels(preferences={preferences})"
def execute_code(code):
# 模拟代码执行并返回模拟数据
return {"data": f"Executed: {code}"}
def generate_itinerary(flights, hotels, attractions):
# 根据航班、酒店和景点生成行程
return {"flights": flights, "hotels": hotels, "attractions": attractions}
# 示例模式
schema = {
"favorites": {"positive_adjustment": "increase", "negative_adjustment": "decrease", "default": "neutral"},
"avoid": {"positive_adjustment": "decrease", "negative_adjustment": "increase", "default": "neutral"}
}
# 示例用法
preferences = {"favorites": "sightseeing", "avoid": "crowded places"}
feedback = {"liked": ["Louvre Museum"], "disliked": ["Eiffel Tower (too crowded)"]}
updated_preferences = adjust_based_on_feedback(feedback, preferences, schema)
# 使用更新的偏好重新生成并执行代码
updated_flight_code = generate_code_to_fetch_data(updated_preferences)
updated_hotel_code = generate_code_to_fetch_hotels(updated_preferences)
updated_flights = execute_code(updated_flight_code)
updated_hotels = execute_code(updated_hotel_code)
updated_itinerary = generate_itinerary(updated_flights, updated_hotels, feedback["liked"])
print("Updated Itinerary:", updated_itinerary)
説明 - フィードバック・ベースの予約
- パターン認識::
schema
この辞書は、嗜好がフィードバックに応じてどのように調整されるべきかを定義している。それには以下が含まれる。favorites
歌で応えるavoid
などのフィールドと、それに対応する調整を行う。 - 嗜好の調整 (
adjust_based_on_feedback
メソッド)この方法は、ユーザーからのフィードバックやパターンに基づいて嗜好を調整する。 - 環境ベースの調整 (
adjust_based_on_environment
メソッド)このメソッドは、モードとフィードバックに合わせてカスタムチューンされる。 - クエリーの生成と実行このシステムは、調整された嗜好に基づいて更新されたフライトとホテルのデータを取得するコードを生成し、これらのクエリの実行をシミュレートします。
- トリップの作成新しいフライト、ホテル、アトラクションのデータに基づいて、最新の旅程を作成します。
システムが文脈を認識し、パターンに基づいて推論することで、より正確で関連性の高いクエリを生成することができ、より良い旅行アドバイスと、よりパーソナライズされたユーザー体験につながる。
RAG(検索拡張生成)手法としてのSQLの使用
SQL(Structured Query Language)は、データベースと対話するための強力なツールである。RAG(Retrieval Augmented Generation)アプローチの一部として使用する場合、SQLはデータベースから関連データを取得し、AIインテリジェンスに情報を提供したり、応答やアクションを生成したりすることができる。旅行代理店のコンテキストで、RAGテクニックとしてSQLを使用する方法を探ってみましょう。
キーコンセプト
- データベース・インタラクション::
- SQLはデータベースへの問い合わせ、関連情報の取得、データの操作に使用される。
- 例:旅行データベースからフライト詳細、ホテル情報、観光スポットを取得する。
- RAGとの統合::
- ユーザー入力とプリファレンスに基づいてSQLクエリを生成します。
- 検索されたデータは、パーソナライズされたレコメンデーションやアクションを生成するために使用される。
- 動的クエリ生成::
- AIインテリジェンスは、コンテキストとユーザー要件に基づいて動的なSQLクエリを生成する。
- 例: SQLクエリをカスタマイズして、予算、日付、金利で結果をフィルタリングします。
アプライアンス
- 自動コード生成特定のタスクのためのコードスニペットを生成します。
- RAGとしてのSQLSQL クエリを使ってデータを操作する。
- 問題解決問題を解決するためのコードを作成し、実行する。
典型例データ分析インテリジェンス機関
- マンデートデータセットを分析して傾向を探る。
- 動く::
- データセットを読み込む。
- SQLクエリを生成してデータをフィルタリングする。
- クエリーを実行し、結果を取得する。
- ビジュアライゼーションとインサイトの作成
- 資源データセットへのアクセス、SQL関数。
- 経験過去の結果を今後の分析に役立てる。
実践例:旅行代理店でのSQLの使用
- ユーザー嗜好の収集
class Travel_Agent: def __init__(self): self.user_preferences = {} def gather_preferences(self, preferences): self.user_preferences = preferences
- SQLクエリの生成
def generate_sql_query(table, preferences): query = f"SELECT * FROM {table} WHERE " conditions = [] for key, value in preferences.items(): conditions.append(f"{key}='{value}'") query += " AND ".join(conditions) return query
- SQLクエリの実行
import sqlite3 def execute_sql_query(query, database="travel.db"): connection = sqlite3.connect(database) cursor = connection.cursor() cursor.execute(query) results = cursor.fetchall() connection.close() return results
- 推薦文の作成
def generate_recommendations(preferences): flight_query = generate_sql_query("flights", preferences) hotel_query = generate_sql_query("hotels", preferences) attraction_query = generate_sql_query("attractions", preferences) flights = execute_sql_query(flight_query) hotels = execute_sql_query(hotel_query) attractions = execute_sql_query(attraction_query) itinerary = { "flights": flights, "hotels": hotels, "attractions": attractions } return itinerary travel_agent = Travel_Agent() preferences = { "destination": "Paris", "dates": "2025-04-01 to 2025-04-10", "budget": "moderate", "interests": ["museums", "cuisine"] } travel_agent.gather_preferences(preferences) itinerary = generate_recommendations(preferences) print("Suggested Itinerary:", itinerary)
サンプルSQLクエリ
- フライトのお問い合わせ
SELECT * FROM flights WHERE destination='Paris' AND dates='2025-04-01 to 2025-04-04-10' AND budget='moderate';
- ホテルのお問い合わせ
SELECT * FROM hotels WHERE destination='Paris' AND budget='moderate';
- アトラクションのお問い合わせ
SELECT * FROM attractions WHERE destination='Paris' AND interests='museums, cuisine';
SQLをRAG(Retrieval Augmented Generation)テクノロジーの一部として活用することで、Travel AgentのようなAIインテリジェンスは、正確でパーソナライズされたレコメンデーションを提供するために、関連データを動的に取得し、活用することができる。
メタ認知の例
メタ認知の実装を実証するために、次のような場合に問題を解決する単純なインテリジェンスを作ってみよう。意思決定プロセスを振り返る.この例では、知性体がホテルの選択を最適化しようとするシステムを構築し、自らの推論を評価し、間違った選択をしたり、最適でない選択をした場合に戦略を調整する。
インテリジェンスが価格と品質の組み合わせに基づいてホテルを選択するが、その決定を「反省」し、それに応じて調整するという基本的な例を使って、このシミュレーションを行う。
メタ認知をどう説明するのか:
- 最初の意思決定インテリゲンチアは、品質がどうであれ、最も安いホテルを選ぶ。
- 振り返りと評価最初に選択した後、スマートボディはユーザーのフィードバックを使って、そのホテルが「悪い」選択かどうかをチェックする。ホテルの質が低すぎると判断した場合、その理由を反省する。
- アライ戦略インテリジェンスはその反省に基づいて戦略を調整し、"最も安い "から "最高品質 "に切り替える。
以下に例を示す:
class HotelRecommendationAgent:
def __init__(self):
self.previous_choices = [] # 存储之前选择的酒店
self.corrected_choices = [] # 存储更正后的选择
self.recommendation_strategies = ['cheapest', 'highest_quality'] # 可用策略
def recommend_hotel(self, hotels, strategy):
"""
根据所选策略推荐酒店。
策略可以是“最便宜”或“最高质量”。
"""
if strategy == 'cheapest':
recommended = min(hotels, key=lambda x: x['price'])
elif strategy == 'highest_quality':
recommended = max(hotels, key=lambda x: x['quality'])
else:
recommended = None
self.previous_choices.append((strategy, recommended))
return recommended
def reflect_on_choice(self):
"""
反思上次做出的选择,并决定智能体是否应调整其策略。
智能体会考虑之前的选择是否导致了较差的结果。
"""
if not self.previous_choices:
return "尚未做出选择。"
last_choice_strategy, last_choice = self.previous_choices[-1]
# 假设我们有一些用户反馈告诉我们上次的选择是好是坏
user_feedback = self.get_user_feedback(last_choice)
if user_feedback == "bad":
# 如果之前的选择不令人满意,则调整策略
new_strategy = 'highest_quality' if last_choice_strategy == 'cheapest' else 'cheapest'
self.corrected_choices.append((new_strategy, last_choice))
return f"反思选择。将策略调整为 {new_strategy}。"
else:
return "选择很好。无需调整。"
def get_user_feedback(self, hotel):
"""
模拟基于酒店属性的用户反馈。
为简单起见,假设如果酒店太便宜,则反馈为“差”。
如果酒店质量低于 7,则反馈为“差”。
"""
if hotel['price'] < 100 or hotel['quality'] < 7:
return "bad"
return "good"
# 模拟酒店列表(价格和质量)
hotels = [
{'name': 'Budget Inn', 'price': 80, 'quality': 6},
{'name': 'Comfort Suites', 'price': 120, 'quality': 8},
{'name': 'Luxury Stay', 'price': 200, 'quality': 9}
]
# 创建一个智能体
agent = HotelRecommendationAgent()
# 第 1 步:智能体使用“最便宜”策略推荐酒店
recommended_hotel = agent.recommend_hotel(hotels, 'cheapest')
print(f"推荐酒店(最便宜):{recommended_hotel['name']}")
# 第 2 步:智能体反思选择并在必要时调整策略
reflection_result = agent.reflect_on_choice()
print(reflection_result)
# 第 3 步:智能体再次推荐,这次使用调整后的策略
adjusted_recommendation = agent.recommend_hotel(hotels, 'highest_quality')
print(f"调整后的酒店推荐(最高质量):{adjusted_recommendation['name']}")
知的身体代謝(IBM)の認知能力
ここで重要なのは、インテリジェンスの能力である:
- 事前の選考と意思決定のプロセスを評価する。
- その反省に基づいて自分の戦略を修正すること、つまりメタ認知の実践的応用である。
これはメタ認知の単純な一形態であり、システムは内部フィードバックに応じて推論プロセスを適応させることができる。
評決を下す
メタ認知は、AI知能の能力を大幅に向上させることができる強力なツールである。メタ認知プロセスを取り入れることで、より賢く、より適応的で、より効率的な知能を設計することができます。AI知能におけるメタ認知の魅力的な世界をさらに探求するには、他のリソースをご利用ください。