ゼファーネットのロゴ

Python で OpenAI API を探索する – KDnuggets

日付:

Python を使用して OpenAI API を探索する
で生成された画像 表意文字.ai
 

OpenAI について聞いたことがない人はいないでしょうか? AI 研究所は、有名な製品 ChatGPT のおかげで世界を変えました。

これは文字通り AI 実装の状況を変え、現在多くの企業が次の大きな企業になろうと急いでいます。

多くの競争にもかかわらず、OpenAI は最高のモデルの 1 つと継続的なサポートを備えているため、あらゆる生成 AI ビジネス ニーズに対応できる頼りになる企業です。同社は、画像生成、テキスト読み上げなど、さまざまなタスク機能を備えた最先端の生成 AI モデルを多数提供しています。 

OpenAI が提供するすべてのモデルは、API 呼び出しを通じて利用できます。単純な Python コードで、すでにモデルを使用できます。 

この記事では、Python で OpenAI API を使用する方法と、実行できるさまざまなタスクについて説明します。この記事から多くのことを学んでいただければ幸いです。

この記事に従うには、いくつかの準備が必要です。

キーがなければ OpenAI モデルにアクセスできないため、必要となる最も重要なものは OpenAI の API キーです。アクセスを取得するには、OpenAI アカウントに登録し、API キーをリクエストする必要があります。 アカウントページ。キーを受け取ったら、OpenAI インターフェイスに再度表示されないため、覚えやすい場所に保存してください。

次に設定する必要があるのは、OpenAI API を使用するためのプリペイド クレジットを購入することです。最近、OpenAI は方法の変更を発表しました。 彼らの請求は機能する。月末に支払う代わりに、API 呼び出し用の前払いクレジットを購入する必要があります。訪問でき​​ます。 OpenAIの価格設定 ページにアクセスして、必要なクレジットを見積もってください。それらをチェックすることもできます モデルページ 必要なモデルを理解するために。

最後に、OpenAI Python パッケージを環境にインストールする必要があります。次のコードを使用してこれを行うことができます。

pip install openai

 

次に、以下のコードを使用して OpenAI Key 環境変数を設定する必要があります。

import os

os.environ['OPENAI_API_KEY'] = 'YOUR API KEY'

 

すべての設定が完了したら、Python を使用して OpenAI モデルの API を調べてみましょう。

OpenAI API の主役は Text Generation モデルです。これらの大規模言語モデル ファミリは、プロンプトと呼ばれるテキスト入力からテキスト出力を生成できます。プロンプトは基本的に、テキスト分析、文書ドラフトの生成など、モデルに期待する内容に関する指示です。

まず、単純な Text Generation API 呼び出しを実行してみましょう。 OpenAI の GPT-3.5-Turbo モデルをベース モデルとして使用します。最新のモデルではありませんが、多くの場合、テキスト関連のタスクを実行するには最も安価なモデルで十分です。

from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Generate me 3 Jargons that I can use for my Social Media content as a Data Scientist content creator"}
  ]
)

print(completion.choices[0].message.content)

 

  1. 「予測分析の力を解き放ち、データに基づいた意思決定を推進します!」
  2. 「データの海に深く潜って貴重な洞察を明らかにします。」
  3. 「高度なアルゴリズムを通じて生データを実用的なインテリジェンスに変換します。」

テキスト生成モデルの API 呼び出しは API エンドポイントを使用します チャットの完了 プロンプトからテキスト応答を作成します。 

テキスト生成には、モデルとメッセージという 2 つの必須パラメータがあります。 

機種は関連機種ページで使用可能な機種一覧をご確認ください。 

メッセージに関しては、役割と内容の 3 つのペアを含む辞書を渡します。ロール キーは、会話モデル内のロール送信者を指定します。システム、ユーザー、アシスタントの XNUMX つの異なる役割があります。

メッセージ内のロールを使用すると、モデルの動作と、モデルがプロンプトにどのように応答するかの例を設定するのに役立ちます。

モデルに関するガイダンスを提供するために、ロール アシスタントを使用して前のコード例を拡張しましょう。さらに、結果を改善するために、テキスト生成モデルのいくつかのパラメーターを検討します。

completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Generate me 3 jargons that I can use for my Social Media content as a Data Scientist content creator."},
        {"role": "assistant", "content": "Sure, here are three jargons: Data Wrangling is the key, Predictive Analytics is the future, and Feature Engineering help your model."},
        {"role": "user", "content": "Great, can you also provide me with 3 content ideas based on these jargons?"}
    ],
    max_tokens=150,
    temperature=0.7,
    top_p=1,
    frequency_penalty=0
)

print(completion.choices[0].message.content)

 

もちろん!提供されている専門用語に基づいた 3 つのコンテンツのアイデアを次に示します。

  1. 「データ ラングリングの力を解き放つ: データ サイエンティストのためのステップバイステップ ガイド」 – 現実世界のデータ サイエンス プロジェクトにおけるデータ ラングリングのベスト プラクティスとツールを紹介するブログ投稿またはビデオ チュートリアルを作成します。
  1. 「予測分析の未来: データ サイエンスのトレンドとイノベーション」 – 予測分析における新たなトレンドとテクノロジー、そしてそれらがデータ サイエンスの未来をどのように形作るのかについて論じたソート リーダーシップ記事を執筆します。
  1. 「特徴量エンジニアリングのマスタリング: モデルのパフォーマンスを向上させるテクニック」 – さまざまな特徴量エンジニアリング技術と、機械学習モデルの精度と効率の向上に対するその効果に焦点を当てたインフォグラフィックまたはソーシャル メディア シリーズを開発します。

結果の出力は、モデルに提供した例に従います。モデルに従わせたい特定のスタイルや結果がある場合、ロール アシスタントの使用が便利です。

パラメータに関しては、使用した各パラメータの簡単な説明を次に示します。

  • max_tokens: このパラメータは、モデルが生成できる最大単語数を設定します。
  • 温度: このパラメータは、モデルの出力の予測不可能性を制御します。温度が高いほど、より多様で想像力豊かな出力が得られます。許容範囲は 0 から無限大ですが、2 を超える値はまれです。
  • トップ_p: 核サンプリングとも呼ばれるこのパラメーターは、モデルが出力を引き出す確率分布のサブセットを決定するのに役立ちます。たとえば、top_p 値 0.1 は、モデルが確率分布の上位 10% のみをサンプリング対象として考慮することを意味します。その値の範囲は 0 ~ 1 で、値が大きいほど出力の多様性が大きくなります。
  • 周波数_ペナルティ: これにより、モデルの出力内で繰り返されるトークンにペナルティが課されます。ペナルティ値の範囲は -2 から 2 で、正の値はトークンの繰り返しを抑制し、負の値はその逆で、単語の繰り返し使用を促進します。値 0 は、繰り返しに対してペナルティが適用されないことを示します。

最後に、次のコードを使用して、モデルの出力を JSON 形式に変更できます。

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  response_format={ "type": "json_object" },
  messages=[
    {"role": "system", "content": "You are a helpful assistant designed to output JSON.."},
    {"role": "user", "content": "Generate me 3 Jargons that I can use for my Social Media content as a Data Scientist content creator"}
  ]
)

print(completion.choices[0].message.content)

 

{
「専門用語」: [
「予測分析を活用して貴重な洞察を引き出す」、
「高度な機械学習アルゴリズムの複雑さを掘り下げる」、
「ビッグデータの力を活用してデータ主導の意思決定を推進する」
]
}

結果は JSON 形式であり、モデルに入力したプロンプトに従います。

完了するために テキスト生成 API ドキュメント、専用ページで確認できます。

OpenAI モデルはテキスト生成のユースケースに役立ち、画像生成の目的で API を呼び出すこともできます。 

DALL・E モデルを使用すると、要求に応じた画像を生成できます。これを実行する簡単な方法は、次のコードを使用することです。

from openai import OpenAI
from IPython.display import Image

client = OpenAI()

response = client.images.generate(
  model="dall-e-3",
  prompt="White Piano on the Beach",
  size="1792x1024",
  quality="hd",
  n=1,
)

image_url = response.data[0].url
Image(url=image_url)

 

Python を使用して OpenAI API を探索する
DALL・E3で生成した画像
 

パラメーターについては、次の説明があります。

  • : 使用する画像生成モデル。現在、API は DALL・E 3 および DALL・E 2 モデルのみをサポートしています。 
  • プロンプト: これは、モデルが画像を生成する際のベースとなるテキストの説明です。 
  • サイズ: 生成される画像の解像度を決定します。 DALL・E 3 モデルには 1024 つの選択肢があります (1024×1024、1792×1792 または 1024×XNUMX)。
  • 品質: このパラメータは、生成される画像の品質に影響します。計算時間が必要な場合は、「hd」よりも「standard」の方が高速です。
  • n: プロンプトに基づいて生成するイメージの数を指定します。 DALL・E 3 は一度に 2 つの画像しか生成できません。 DALL・E 10は一度に最大XNUMX個まで生成できます。

DALL・E 2モデルでのみ利用可能ですが、既存の画像からバリエーション画像を生成することも可能です。 API は、4 MB 未満の正方形の PNG 画像のみを受け入れます。

from openai import OpenAI
from IPython.display import Image

client = OpenAI()

response = client.images.create_variation(
  image=open("white_piano_ori.png", "rb"),
  n=2,
  size="1024x1024"
)

image_url = response.data[0].url

Image(url=image_url)

 

旧モデルを使用しているため、DALL・E 3世代ほど画質が良くない可能性があります。

OpenAI は、画像入力を理解できるモデルを提供するリーディングカンパニーです。このモデルは Vision モデルと呼ばれ、GPT-4V とも呼ばれます。モデルは、私たちが与えたイメージを考慮して質問に答えることができます。

Vision モデル API を試してみましょう。この例では、DALL・E 3 モデルから生成し、ローカルに保存した白いピアノ画像を使用します。また、画像のパスを取得して画像の説明テキストを返す関数も作成します。 api_key 変数を API キーに変更することを忘れないでください。

from openai import OpenAI
import base64
import requests
def provide_image_description(img_path):

    client = OpenAI()

    api_key = 'YOUR-API-KEY'
    # Function to encode the image
    def encode_image(image_path):
      with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')
   
    # Path to your image
    image_path = img_path
   
    # Getting the base64 string
    base64_image = encode_image(image_path)
   
    headers = {
      "Content-Type": "application/json",
      "Authorization": f"Bearer {api_key}"
    }
   
    payload = {
      "model": "gpt-4-vision-preview",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": """Can you describe this image? """
            },
            {
              "type": "image_url",
              "image_url": {
                "url": f"data:image/jpeg;base64,{base64_image}"
              }
            }
          ]
        }
      ],
      "max_tokens": 300
    }
   
    response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

    return response.json()['choices'][0]['message']['content']

 

このイメージでは、静かなビーチにグランドピアノが置かれています。ピアノは白で、エレガントさをイメージさせる仕上がりとなっています。この楽器は海岸線の端に位置しており、穏やかな波が砂を軽く撫でて泡を作り、ピアノの底面とそれに合わせたスツールにちょうど触れる程度です。ビーチの環境は、澄んだ青い空、遠くのふわふわした雲、そして地平線まで広がる穏やかな海によって、静けさと孤独の感覚を暗示しています。砂の上のピアノの周囲には、さまざまな大きさや形の貝殻が散りばめられており、その環境の自然の美しさと穏やかな雰囲気を強調しています。自然のビーチ環境にクラシック音楽の楽器を並置することで、超現実的で視覚的に詩的な構図が生まれます。

Vision モデルの要件に合わせて、上記の辞書内のテキスト値を調整できます。

OpenAI は、Text-to-Speech モデルに基づいて音声を生成するモデルも提供します。音声ナレーション形式は限られていますが、非常に使いやすいです。また、このモデルは多くの言語をサポートしています。 言語サポートページ.

音声を生成するには、以下のコードを使用できます。

from openai import OpenAI
client = OpenAI()

speech_file_path = "speech.mp3"
response = client.audio.speech.create(
  model="tts-1",
  voice="alloy",
  input="I love data science and machine learning"
)

response.stream_to_file(speech_file_path)

 

ディレクトリに音声ファイルが表示されるはずです。プレイしてみて、自分の基準を満たしているかどうかを確認してください。 

現在、Text-to-Speech モデルに使用できるパラメーターはいくつかのみです。

  • model: 使用する Text-to-Speech モデル。 1 つのモデル (tts-1 または tts-1-hd) のみが利用可能で、tts-1 は速度を最適化し、tts-XNUMX-hd は品質を最適化します。
  • voice: すべての音声が英語に最適化される場合に使用する音声スタイル。選択肢は、アロイ、エコー、フェイブル、オニキス、ノバ、シマーです。
  • response_format: 音声フォーマット ファイル。現在サポートされている形式は、mp3、opus、aac、flac、wav、pcm です。
  • 速度: 生成されたオーディオの速度。 0.25 ~ 4 の値を選択できます。 
  • input: オーディオを作成するためのテキスト。現在、このモデルは最大 4096 文字までしかサポートしていません。

OpenAI は、音声データを転写および翻訳するためのモデルを提供します。ささやきモデルを使用すると、サポートされている言語から音声をテキスト ファイルに書き起こし、英語に翻訳できます。

以前に生成した音声ファイルから簡単な文字起こしを試してみましょう。

from openai import OpenAI
client = OpenAI()

audio_file= open("speech.mp3", "rb")
transcription = client.audio.transcriptions.create(
  model="whisper-1",
  file=audio_file
)

print(transcription.text)

 

私はデータサイエンスと機械学習が大好きです。

音声ファイルから英語への翻訳も可能です。このモデルはまだ別の言語に翻訳できません。

from openai import OpenAI
client = OpenAI()

audio_file = open("speech.mp3", "rb")
translate = client.audio.translations.create(
  model="whisper-1",
  file=audio_file
)

私たちは、テキスト生成、画像生成、オーディオ生成、ビジョン、テキスト読み上げモデルに至るまで、OpenAI が提供するいくつかのモデル サービスを調査してきました。各モデルには、使用する前に学習する必要がある API パラメーターと仕様があります。
 
 

コーネリアス・ユダ・ウィジャヤ データ サイエンスのアシスタント マネージャー兼データ ライターです。アリアンツ インドネシアでフルタイムで働いている彼は、ソーシャル メディアや執筆メディアを通じて Python とデータのヒントを共有するのが大好きです。 Cornellius は、AI と機械学習のさまざまなトピックについて執筆しています。

スポット画像

最新のインテリジェンス

スポット画像