オープン AI API エクスペリエンス

オープンAI API

序章

OpenAI は、サードパーティ開発者が GPT-3 などのモデルを自社のアプリケーションやサービスに統合できる、よりインタラクティブで柔軟な API インターフェイスを提供します。Chat GPT が提供するチャット インターフェイスと比較して、OpenAI API は、開発者がモデルの種類、モデル パラメーター、タスク定義などのモデルの動作をカスタマイズするために使用できるさまざまなオプションと設定を提供します。2023 年 3 月 1 日、OpenAI は ChatGPT で使用されているモデルと言われている GPT-3.5 Turbo モデルの API をオープンしました。API の使用料金は 1,000 トークンあたり 0.002 ドルで、これは中国語で約 2 セント、700 文字に相当します。

コンセプト

トークン

従来、GPT モデルでは、モデル内で一連の「トークン」識別子として表現される非構造化テキストが使用されていましたが、オープン AI モデルでは、理解と処理のためにテキストがトークンに分解され、これがモデルの請求単位でもあります。トークンは単語または文字のブロックです。たとえば、「pear」のような短く一般的な単語は 1 つのトークンですが、「hamburger」という単語は「ham」、「bur」、「ger」の 3 つのトークンに分割されます。特定の API リクエストで処理されるトークンの数は、入力と出力の合計です。

API 呼び出し内のトークンの総数は、以下に影響します。

  1. API呼び出し料金(トークンごとに支払う)
  2. より多くのトークンを書き込むとさらに時間がかかるため、API 呼び出しにかかる時間はどれくらいですか?
  3. 合計トークンがモデルの最大制限 (gpt-3.5-turbo-0301 の処理制限は 4096 トークン) よりも小さい必要があるため、API 呼び出しが有効かどうか。

プロンプト

簡単に言えば、プロンプトとは、モデルに必要なものを出力させることを意味します。まず、モデルに必要なものを説明する必要があります。プロンプトには、タスクの短い説明を指定することも、1 つ以上の出力例を含めることもできます。

プロンプトには次の要素が含まれる場合があります

  • 指示: 実行してほしいタスクをモデルに伝えます。たとえば、「上のテキストを英語に翻訳してください:」は指示です。
  • Context Contenxt : 現在の会話の背景とコンテキストです。たとえば、ChatGPT にロールプレイングを実行させ、AI に役割を割り当てることで、AI がより正確な出力内容を提供できるように誘導します。
  • 入力データ 入力データ: chatgpt で処理するオブジェクト (テキスト、質問、上記で翻訳されたテキスト コンテンツなど)。
  • 出力インジケーター 出力インジケーター: 必要な出力タイプまたは形式をモデルに伝えます。たとえば、モデルからリストを取得したり、モデルからセミコロンで区切られた結果を取得したりすることは、すべて出力インジケーターに属します。
你是一个多标签文本分类系统,请帮我完成中文多标签文本分类任务。
任务要求如下:对输入的句子进行多标签文本分类并按指定格式输出。
支持的分类类别仅限{
   
   { labels|length }}类:{
   
   { labels|join('、') }}。
解释及示例:{
   
   { hint }}
输出格式要求:分类标签列表。

以下是输入句子:{
   
   { text }} 
输出:

モデル

次の表は、Open AI API の各モードで利用可能なモデルを示しています。

終点 モデル名 説明
/v1/チャット/コンプリート gpt-4、gpt-4-0314、gpt-4-32k、gpt-4-32k-0314、gpt-3.5-turbo、gpt-3.5-turbo-0301 ChatCompletion は特定の端末ポイントであり、主にチャットボット、顧客サービス対話、その他のタスクなど人間の対話をシミュレートするために使用されます。Completion とは異なり、ChatCompletion は対話のコンテキストを処理する必要があります。つまり、同じユーザーによって提起された複数の質問または回答に対して、より一貫性のある正確な応答を提供するために、以前の対話履歴を考慮する必要があります。
/v1/completions text-davinci-003、text-davinci-002、text-curie-001、text-babbage-001、text-ada-001 Completion は汎用エンドポイントであり、主に執筆、翻訳、要約、その他のタスクなどのテキストの生成に使用されます。テキスト プロンプトを入力として受け取り、完全なテキストを返します。
/v1/編集 テキスト-davinci-edit-001、code-davinci-edit-001 ユーザーは、生のテキストを API に送信して、提案された改訂や改善を求めることができます。API は、元のテキストの置換、削除、挿入、再配置を含む一連の編集候補を返します。
/v1/オーディオ/文字起こし ささやき-1 音声ファイルを提供し、1 分あたり 0.006 ドルでスピーチのトランスクリプトを返します。
/v1/オーディオ/翻訳 ささやき-1 音声ファイルを提供し、別の言語でトランスクリプトを返します
/v1/微調整 ダヴィンチ、キュリー、バベッジ、エイダ トレーニング データを提供し、学習率、微調整ラウンド数、バッチ サイズなどのパラメーターを設定し、既存の GPT モデルを微調整します。
/v1/embeddings テキスト埋め込み-ada-002、テキスト検索-ada-doc-001 文/段落レベルの埋め込みを提供します。1 つ以上のテキスト入力をリクエストとして受け取り、各テキストに対応するベクトル埋め込みをレスポンスとして取得できます。テキスト分類、意味検索、テキスト類似度計算など。ベクトル埋め込みは高次元空間におけるテキストの表現と考えることができ、ベクトル間の距離や類似度を計算することでテキスト間の関係性を判断できます。
/v1/モデレーション テキストモデレーション安定版、テキストモデレーション最新版 1 つ以上のテキストをリクエストとして入力し、各テキストに対応する監査結果をレスポンスとして取得できます。審査結果には、審査の合否とその理由の 2 つの部分が含まれます。テキストがレビューに合格した場合、結果の「有害性」値は 0 になり、そうでない場合は 1 となり、違法な語彙、文構造、感情分析などの関連情報が返されます。
#查看模型权限
import os
import openai
openai.organization = "YOUR_ORG_ID" #使用自己的ID
openai.api_key = os.getenv("OPENAI_API_KEY") #使用账号下创建的key
openai.Model.list()

マニュアル

1. オープン AI アカウントにログインして API キーを取得します

独自の api_key を生成します: https://platform.openai.com/account/api-keys

初回特典として5ドルが付与されており、上限を使い切った後はご自身で購入する必要があり、具体的な課金価格はモデルに応じて異なります。

ここに画像の説明を挿入

2. アクセス環境

公式の Python ライブラリをインストールします。API を呼び出す場合は、科学的なインターネット環境を準備するか、プロキシを設定する必要があります

pip install openai

3. API の使用例

(1)完了

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
# or openai.api_key = "YOUR OPENAI_API_KEY" 

prompt = """
Decide whether a comment on CSDN sentiment is positive, neutral, or negative.
comment: I want to learn the openai more!
Sentiment:
"""

response = openai.Completion.create(
              model="text-davinci-003",
              prompt=prompt,	
              max_tokens=1024,   
              temperature=0,
              top_p=0.1
            )

print(response)

温度: 0 ~ 2。値が高いほど (0.8 など)、出力はよりランダムになりますが、値が低いほど (0.2 など)、出力はより集中的で決定的になります。

top_p: 効果は温度と同様であり、モデルでは、top_p 確率のトークンが考慮されます。したがって、0.1 は、上位 10% の確率を含むトークンのみを考慮することを意味します

max_tokens: 生成されるトークンの最大数にプロンプ​​トのトークンを加えた値は、モデルの最大制限を超えることはできません。

出力結果:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "text": "Positive"
    }
  ],
  "created": 1681656672,
  "id": "cmpl-75y0ePNfI8aT41A03W3WpYYwfvcuD",
  "model": "text-davinci-003",
  "object": "text_completion",
  "usage": {
    "completion_tokens": 2,
    "prompt_tokens": 36,
    "total_tokens": 38
  }
}

Process finished with exit code 0


(2)チャット完了

content = '''
you are my assistant, Could we talk a little bit about 
the schedule today, what will we do in  the afternoon ?
'''
response = openai.ChatCompletion.create(
  model="gpt-3.5-turbo",
  messages=[{"role": "user", "content": content}],
  temperature=0.3,
  max_tokens=1048,
  top_p=1.0,
)

text = response.choices[0].message["content"]
print(text)

出力結果:

Of course! Can you please provide me with some more information about your schedule today? What activities do you have planned for the morning? This will help me better understand what we can do in the afternoon.

(3)画像

OpenAI API は、元の画像またはヒントを指定して、拡張画像または生成画像を作成します。

response = openai.Image.create(
  prompt="A super cute girl sitting in a basket of flowers, pop mart style, chibi",
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']
print(image_url)

生成された画像:

ここに画像の説明を挿入

(4)編集

編集モード ヒントと指示が与えられると、モデルは編集されたバージョンを返します。

mycode = '''
while(!dead) { 
    code(); 
} 
'''

response = openai.Edit.create(
  model="code-davinci-edit-001",
  input=mycode,
  instruction="Fix the code mistakes and optimize it"
)

print(response)

出力結果:

{
  "choices": [
    {
      "index": 0,
      "text": "while(!dead) \n    code();\n"
    }
  ],
  "created": 1681659196,
  "object": "edit",
  "usage": {
    "completion_tokens": 41,
    "prompt_tokens": 35,
    "total_tokens": 76
  }
}

Process finished with exit code 0

一般的に使用されるモデルの説明:

最新モデル 説明 最大トークン トレーニングデータ
gpt-3.5-ターボ 最も高性能な GPT-3.5 モデルで、チャット用に最適化されており、コストは 1/10 ですtext-davinci-003最新モデルのイテレーションで更新されます。 4,096 トークン 2021年9月まで
gpt-3.5-ターボ-0301 2023 年 3 月 1 日のスナップショット。gpt-3.5-turboとは異なりgpt-3.5-turbo、このモデルはアップデートを受信せず、2023 年 6 月 1 日までの 3 か月間のみサポートされます。 4,096 トークン 2021年9月まで
テキスト-ダヴィンチ-003 curie、babbage、または ada モデルよりも高品質、長時間の出力、一貫した指示に従ってあらゆる言語タスクを実行できます。テキスト内の補完[挿入]もサポートします。 4,097 トークン 2021年6月まで
テキスト-ダヴィンチ-002 と同様の機能ですが、text-davinci-003強化学習の代わりに教師あり微調整でトレーニングされます。 4,097 トークン 2021年6月まで
コード-ダヴィンチ-002 コード補完タスク用に最適化 8,001トークン 2021年6月まで

参考

https://platform.openai.com/docs

https://www.dataapplab.com/a-simple-guide-to-openai-api-with-python/

おすすめ

転載: blog.csdn.net/weixin_52020016/article/details/130430360