Webアプリケーションから簡単にOpenAIのGPTモデルを使用してテキスト生成する方法

您所在的位置:网站首页 天气api怎么用 Webアプリケーションから簡単にOpenAIのGPTモデルを使用してテキスト生成する方法

Webアプリケーションから簡単にOpenAIのGPTモデルを使用してテキスト生成する方法

2023-03-10 06:36| 来源: 网络整理| 查看: 265

ここではStreamlitを使用してChatGPTのAPIを呼び出して自然言語処理を行うWebアプリケーションの作成方法について説明しています。また、プログラムからChatGPTを利用するために必要なOpenAI APIキーの取得方法についても最初に説明しています。

1.OpenAIキーの取得

https://openai.com/product を開いて「Get started」をクリックする。

img.png

ログインする。またはアカウントを作成する。作成する場合はメールアドレスと電話番号が必要です。

img_1.png

無事、ログインすると紹介ページが表示される。

img_2.png

自分のアイコン画像を右クリックするとリストが表示されるので、その中から「View API Keys」をクリックする。

img_3.png

「Create new secret key」をクリックしてキーを作成する。 作成したキーはコピーして環境変数などに設定する。 ※ 環境変数の設定がわからない人は直接Pythonのコードに記入してください。

この設定画面からはもう一度見ることはできない。分からなくなった場合は新規にキーを生成し直すこと。

img_4.png

2.Streamlitのプログラミング パッケージのインストール

StreamlitとOpenAIのパッケージをインストールする必要があります。 StreamlitはWebアプリケーションのフレームワークであり、OpenAIはChatGPTのAPIを使用するためのパッケージです。

前提としてPythonがインストールされている必要があります。また、インストールする際には、Pythonのバージョンと互換性のあるバージョンを選択する必要があります。

$ pip install streamlit $ pip install openai コード解説

このコードは、Streamlitを使用してユーザーの入力に基づいてOpenAIのAPIを使用して自然言語処理を実行するものです。

最初に、必要なパッケージをインポートします。

import streamlit as st import openai import os

streamlitはWebアプリケーションのフレームワークで、openaiはOpenAIのAPIを使用するためのパッケージです。osは、環境変数を取得するために使用されます。

次に、APIキーを設定するための関数を定義します。

def setup_openai_api(): openai.api_key = os.environ.get('OPEN_AI_KEY')

この関数は、OPEN_AI_KEY環境変数からAPIキーを読み取り、openai.api_keyにセットします。 環境変数への設定方法が分からない人は、以下の様に直接OpenAIのキーを書き込んでください。ただしコード内容の漏洩にはくれぐれもご注意ください。

def setup_openai_api(): openai.api_key = 'sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

次に、OpenAIに問い合わせを送信して応答を取得する関数を定義します。

# OpenAIに問い合わせを送信し、応答を取得する関数 def generate_response(system_text: str, user_text: str) -> openai.api_resources.Completion: response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=message, max_tokens=2000, temperature=0, stream=True ) return response

この関数は、openai.ChatCompletion.createメソッドを使用してOpenAIに問い合わせを送信し、応答を取得します。modelパラメータは使用するOpenAIのモデルを指定し、messagesパラメータには、チャットの履歴が含まれます。max_tokensパラメータは、生成されたテキストの長さを制御し、temperatureパラメータは、生成されたテキストの多様性を制御します。

次に、ユーザーからの入力を取得する関数を定義します。

def get_user_input() -> str: return st.text_area("質問", value="OpenAIとOpen AIの違いは?")

この関数は、streamlitのtext_areaメソッドを使用して、ユーザーからテキスト入力を受け取ります。

最後に、メインの関数を定義します。

def main(): setup_openai_api() # OpenAI APIキーを設定する system_text = "アシスタントAI" user_text = get_user_input() # ユーザーの入力を取得する is_generate_clicked = st.button("回答") if is_generate_clicked: response = generate_response(system_text, user_text) # OpenAIに問い合わせを送信し、応答を取得する display_response(response) # OpenAIから受け取った応答を表示する

この関数は、最初にふたつの関数setup_openai_apiとget_user_inputを呼び出し、OpenAI APIキーを設定し、ユーザーからの入力を取得します。次に、ユーザーが回答ボタンをクリックしたときにのみgenerate_responseを呼び出し、OpenAIから返された応答を表示するためのdisplay_response関数を呼び出します。

以下は、display_response 関数の例です。

def display_response(response: openai.api_resources.Completion): for message in response.choices: text = message.text st.text(text)

この関数は、streamlitのtext_areaメソッドを使用して、ユーザーからテキスト入力を受け取ります。

最後に、メインの関数を定義します。

if __name__ == "__main__": main()

このアプリケーションは、Webアプリケーションとして動作し、ユーザーが入力したテキストに基づいてOpenAIのAPIを使用して自然言語処理を行い、結果を表示します。

実行方法

このコードは、OpenAIのAPIを使用して、ユーザーが入力した質問に答えるWebアプリケーションをStreamlitで実装したものです。以下のような流れで動作します。

ユーザーが質問を入力する 質問をOpenAIのAPIに送信し、回答を受け取る 回答を表示する

実行方法として、ターミナルでstreamlit run demo1.pyを実行し、Webアプリケーションを起動します。その後、http://localhost:8501 にアクセスすることでアプリケーションを使用できます。

$ streamlit run demo1.py You can now view your Streamlit app in your browser. Local URL: http://localhost:8501

実行結果のイメージはこのようになります。

image.png

ソースコード

このWebアプリケーションのソースコードは、GitHubリポジトリで公開されています。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3