ホームページ > テクノロジー周辺機器 > AI > OpenAI関数呼び出しチュートリアル:構造化された出力を生成します

OpenAI関数呼び出しチュートリアル:構造化された出力を生成します

Lisa Kudrow
リリース: 2025-03-10 12:02:12
オリジナル
663 人が閲覧しました

機能せずにopenaiを使用して

を使用します このセクションでは、一貫した出力が得られるかどうかを確認するために、関数呼び出しなしでGPT-3.5ターボモデルを使用して応答を生成します。

Openai Python APIをインストールする前に、APIキーを取得してローカルシステムにセットアップする必要があります。 PythonチュートリアルのOpenai APIを介してGPT-3.5およびGPT-4をフォローして、APIキーを取得してセットアップする方法を学びます。チュートリアルには、DatacampのAI対応データノートブックであるDatalabの環境変数のセットアップの例も含まれています。

さらなる支援については、datalabのワークブックを呼び出すOpenai関数のコードをチェックしてください。

Openai Python APIを使用してV1にアップグレードします

その後、APIキーを使用してOpenAIクライアントを開始します。

Note

:Openaiは新しいユーザーに無料クレジットを提供しなくなったため、APIを使用するには購入する必要があります。
pip install --upgrade openai -q
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ランダムな学生の説明を書きます。自分のテキストを思いついたり、ChatGptを使用してあなたのために生成することもできます。

次の部分では、テキストから学生情報を抽出し、JSONオブジェクトとして出力を返すようにプロンプ​​トを書きます。学生の説明に名前、メジャー、学校、成績、クラブを抽出します。
import os
from openai import OpenAI

client = OpenAI(
  api_key=os.environ['OPENAI_API_KEY'],
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

OpenAI APIチャット完了モジュールにプロンプ​​トを追加して、応答を生成します。 応答は非常に良いです。 JSONに変換して、よりよく理解しましょう

「JSON」ライブラリを使用して、テキストをJSONオブジェクトに変換します。

student_1_description = "David Nguyen is a sophomore majoring in computer science at Stanford University. He is Asian American and has a 3.8 GPA. David is known for his programming skills and is an active member of the university's Robotics Club. He hopes to pursue a career in artificial intelligence after graduating."
ログイン後にコピー
ログイン後にコピー
最終結果はかなり完璧です。それで、なぜ関数呼び出しが必要ですか?

# A simple prompt to extract information from "student_description" in a JSON format.
prompt1 = f'''
Please extract the following information from the given text and return it as a JSON object:

name
major
school
grades
club

This is the body of text to extract the information from:
{student_1_description}
'''
ログイン後にコピー
ログイン後にコピー
同じプロンプトを試してみましょうが、別の学生の説明を使用してください。

プロンプトの学生の説明テキストを変更するだけです。
# Generating response back from gpt-3.5-turbo
openai_response = client.chat.completions.create(
    model = 'gpt-3.5-turbo',
    messages = [{'role': 'user', 'content': prompt_1}]
)

openai_response.choices[0].message.content
ログイン後にコピー
ログイン後にコピー

そして、2番目のプロンプトを使用してチャット完了関数を実行します。

'{\n  "name": "David Nguyen",\n  "major": "computer science",\n  "school": "Stanford University",\n  "grades": "3.8 GPA",\n  "club": "Robotics Club"\n}'
ログイン後にコピー
ログイン後にコピー
ご覧のとおり、一貫性はありません。 1つのクラブを返す代わりに、Raviが参加したクラブのリストを返しました。また、最初の学生とは異なります

openai関数呼び出し例
import json

# Loading the response as a JSON object
json_response = json.loads(openai_response.choices[0].message.content)
json_response
ログイン後にコピー
この問題を解決するために、関数呼び出しと呼ばれる最近導入された機能を使用します。 Openai APIがその機能を理解できるように、辞書のリストに必要な情報を追加するためにカスタム関数を作成することが不可欠です。
  • 名前:最近作成したPython関数名を書きます。
  • 説明:関数の機能。
  • パラメーター:「プロパティ」内で、引数、タイプ、および説明の名前を書きます。 Openai APIが私たちが探している世界を特定するのに役立ちます。

:正しいパターンに従っていることを確認してください。公式ドキュメントを読んで、関数呼び出しの詳細をご覧ください。 次に、「関数」引数に追加されたカスタム関数を使用して、2つの学生の説明の応答を生成します。その後、テキスト応答をJSONオブジェクトに変換して印刷します。

pip install --upgrade openai -q
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ご覧のとおり、均一な出力が得られました。文字列の代わりに数値でグレードを取得しました。一貫した出力は、バグのないAIアプリケーションを作成するために不可欠です

複数のカスタム関数
import os
from openai import OpenAI

client = OpenAI(
  api_key=os.environ['OPENAI_API_KEY'],
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

チャット完了関数に複数のカスタム関数を追加できます。このセクションでは、Openai APIの魔法の能力と、正しい関数を自動的に選択し、正しい引数を返す方法を確認します。

辞書のPythonリストでは、「Extract_school_info」と呼ばれる別の関数を追加します。これは、テキストから大学の情報を抽出するのに役立ちます。 これを達成するには、名前、説明、パラメーターを含む関数の別の辞書を追加する必要があります。
student_1_description = "David Nguyen is a sophomore majoring in computer science at Stanford University. He is Asian American and has a 3.8 GPA. David is known for his programming skills and is an active member of the university's Robotics Club. He hopes to pursue a career in artificial intelligence after graduating."
ログイン後にコピー
ログイン後にコピー

chatgptを使用して「スタンフォード大学」の説明を生成して関数をテストします。

生徒と学校の説明のリストを作成し、OpenAIチャット完了関数を通過して応答を生成します。更新されたカスタム関数を提供していることを確認してください

GPT-3.5ターボモデルは、さまざまな説明タイプに対して正しい関数を自動的に選択しました。生徒と学校のための完璧なJSON出力が得られます。

「extract_school_info」関数を使用して、安価が生成されるという名前の下でも見ることができます。
# A simple prompt to extract information from "student_description" in a JSON format.
prompt1 = f'''
Please extract the following information from the given text and return it as a JSON object:

name
major
school
grades
club

This is the body of text to extract the information from:
{student_1_description}
'''
ログイン後にコピー
ログイン後にコピー

# Generating response back from gpt-3.5-turbo
openai_response = client.chat.completions.create(
    model = 'gpt-3.5-turbo',
    messages = [{'role': 'user', 'content': prompt_1}]
)

openai_response.choices[0].message.content
ログイン後にコピー
ログイン後にコピー

関数呼び出しのアプリケーション
'{\n  "name": "David Nguyen",\n  "major": "computer science",\n  "school": "Stanford University",\n  "grades": "3.8 GPA",\n  "club": "Robotics Club"\n}'
ログイン後にコピー
ログイン後にコピー
このセクションでは、学校と学生の情報を特定の方法で要約する安定したテキスト要約を構築します。

最初に、extract_student_infoとextract_school_infoの2つのpython関数を作成します。

pip install --upgrade openai -q
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
  1. Pythonリストを作成します。Pythonリストは、生徒の1つの説明、ランダムプロンプト、および1つの説明で構成されています。ランダムプロンプトが追加されて、自動関数呼び出しメカニックを検証します。
  2. 「説明」リストの各テキストを使用して応答を生成します。
  3. 関数呼び出しが使用されている場合、関数の名前を取得し、それに基づいて、応答を使用して関連する引数を関数に適用します。それ以外の場合は、通常の応答を返します。
  4. 3つのサンプルすべての出力を印刷します
import os
from openai import OpenAI

client = OpenAI(
  api_key=os.environ['OPENAI_API_KEY'],
)
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
サンプル#1
    :GPTモデルは「extract_student_info」を選択しました。学生についての短い要約がありました。
  • サンプル#2:GPTモデルは機能を選択しておらず、プロンプトを定期的な質問として扱いました。その結果、アブラハムリンカーンの伝記が得られました。
  • サンプル#3:GPTモデルは「extract_school_info」を選択し、スタンフォード大学について短い要約を得ました。
  • 結論 このチュートリアルでは、Openaiの関数呼び出しについて学びました。また、一貫した出力を生成し、複数の関数を作成し、信頼できるテキストサマリライザーを構築するためにそれを使用する方法を学びました。 Openai APIの詳細を知りたい場合は、Openai APIコースで作業し、PythonチートシートでOpenai APIを使用して最初のAIを搭載したプロジェクトを作成することを検討してください。関数スキーマ内のネストされたJSON構造を定義する。パラメータープロパティ内の階層的な関係を指定することにより、モデルが複雑なデータ要件のために適切にネストされ、構造化されたJSON出力を生成することを確認できます。モデルから渡された引数に基づくデータベースクエリ。これにより、一貫した構造化された応答を維持しながら、外部システムとの動的な相互作用が可能になります。

    モデルの関数呼び出しが定義された関数と一致しない場合はどうなりますか? ​​

    モデルの関数呼び出しが定義された関数または提供されたスキーマと一致しない場合、モデルは標準テキストベースのプロンプトとして入力を扱います。これにより、さまざまな入力タイプの取り扱いに柔軟性が保証されます。トップAI認定を獲得ai.get認定を効果的かつ責任を持って使用できることを実証します。

以上がOpenAI関数呼び出しチュートリアル:構造化された出力を生成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート