OpenAI Assistants API の Function Calling を利用して外部 API(為替レート API)と連携する方法を解説します。実際にコードを動かし、ユーザーの質問に応じて為替レートを取得する仕組みを構築します。
OpenAI の Assistants API には、外部 API と連携するための Function Calling 機能が搭載されています。
この機能を利用することで、外部の情報を取得したり、特定のアクションを実行 することが可能になります。
本記事では、 「ユーザーが為替レートを尋ねると、外部 API から為替情報を取得し、適切な回答を生成する Assistants API の活用方法」 を解説します。
Assistants API の Function Calling 機能を活用すると、以下のようなことが可能になります。
今回の実装では、 OpenAI Assistants API と為替レート API(ExchangeRate-API)を組み合わせて、リアルタイムの為替レートを取得する方法 を紹介します。
まず、OpenAI Assistants API に新しいアシスタントを作成し、 get_exchange_rate という関数を登録します。
この関数を通じて、ユーザーが「USD から JPY への為替レートは?」と尋ねると、外部の為替 API を呼び出して情報を取得する仕組みを構築します。
以下のコードを実行し、get_exchange_rate
関数を登録したアシスタントを作成します。
PYTHONfrom openai import OpenAI import os # OpenAI API キー OPENAI_API_KEY = os.environ.get("OPENAI_API_KEY") # OpenAI クライアントの初期化 openai = OpenAI(api_key=OPENAI_API_KEY) # Assistants API を使って新しいアシスタントを作成 assistant = openai.beta.assistants.create( name="Exchange Rate Assistant", instructions="ユーザーのリクエストに応じて、外部 API から為替レートを取得してください。", model="gpt-4-turbo", tools=[{ "type": "function", "function": { "name": "get_exchange_rate", "description": "指定された通貨ペアの為替レートを取得します。", "parameters": { "type": "object", "properties": { "base_currency": {"type": "string", "description": "基準通貨(例: USD, JPY)"}, "target_currency": {"type": "string", "description": "対象通貨(例: EUR, GBP)"} }, "required": ["base_currency", "target_currency"] } } }] ) print("Assistant ID:", assistant.id)
このコードを実行すると、新しいアシスタントが作成され、get_exchange_rate 関数が登録されます。
作成したアシスタントの ID は、後で API を呼び出すときに使用します。
次に、ユーザーが「USD から JPY への為替レートは?」と尋ねたときに、ExchangeRate-API を使って為替情報を取得し、アシスタントの回答として表示する処理を実装します。
PYTHONimport requests def get_exchange_rate(base_currency, target_currency): EXCHANGE_API_KEY = os.environ.get("EXCHANGE_API_KEY") API_URL = f"https://v6.exchangerate-api.com/v6/{EXCHANGE_API_KEY}/pair/{base_currency}/{target_currency}" response = requests.get(API_URL) if response.status_code == 200: data = response.json() return f"{base_currency} → {target_currency} の為替レートは {data['conversion_rate']} です。" else: return "為替レート情報を取得できませんでした。"
この関数は、外部の為替 API から リアルタイムの為替レートを取得する 役割を持ちます。
PYTHONimport time import json # ユーザーとのスレッドを作成 thread = openai.beta.threads.create() # ユーザーの質問をスレッドに追加 user_message = openai.beta.threads.messages.create( thread_id=thread.id, role="user", content="KRW(韓国ウォン) から JPY への為替レートは?" ) # 既存の Assistant ID を使用して処理を実行 run = openai.beta.threads.runs.create( thread_id=thread.id, assistant_id=assistant.id ) # ステータスの確認 while True: run_status = openai.beta.threads.runs.retrieve(thread_id=thread.id, run_id=run.id) if run_status.status in ["completed", "failed"]: break time.sleep(1) # 結果を取得し、表示 messages = openai.beta.threads.messages.list(thread_id=thread.id) for msg in reversed(messages.data): print(f"{msg.role}: {msg.content[0].text.value}")
このコードを実行すると、以下のような出力が得られます。
OUTPUTuser: KRW(韓国ウォン) から JPY への為替レートは? assistant: KRW(韓国ウォン)から JPY(日本円)への為替レートは 0.1044 です。
本記事では、 Assistants API の Function Calling を活用して、外部の為替レート API から情報を取得する方法 を解説しました。
Function Calling を活用することで、 リアルタイムのデータを AI に組み込むことが可能 になります。
当サイトの情報は、一般的な参考情報として提供しております。
正確な情報の掲載に努めておりますが、その内容の正確性・完全性・最新性を保証するものではありません。
記事の内容をご利用の際は、ご自身の責任において判断し、必要に応じて専門家にご相談ください。
当サイトの情報の利用により生じたいかなる損害についても、一切の責任を負いかねますのでご了承ください。
※ 本ページでは、著作権法に基づき、適正な引用の範囲内でコンテンツを紹介しています。
オリジナルの情報は発信元をご確認ください。
もし問題がありましたら、こちら からお問い合わせください。