Next.jsでOpenAIのAPI連携はどのように実現すればいいのか考えてみた
2024年12月07日 13:33
近年、人工知能の分野で注目を集めているOpenAIは、高い精度を誇る言語モデルを提供しています。そのため、WebアプリケーションにおいてもOpenAIのAPIを活用することで、さまざまなサービスの開発が可能となっています。
そこで、今回はNext.jsとOpenAIのAPIを連携させる方法について考えてみました。Next.jsはReactをベースとしたフルスタックフレームワークであり、高いパフォーマンスと開発効率の向上を実現しています。また、OpenAIのAPIはRESTfulな設計になっており、APIを利用するにはHTTPリクエストを送信する必要があります。そこで、Next.jsのAPIルート機能を活用して、簡単にOpenAIのAPIと連携する方法を考えてみました。
まずはじめに、Next.jsのAPIルートを作成します。APIルートとは、サーバーサイドで処理を行うことができるエンドポイントのことです。Next.jsでは、pagesディレクトリ内にapiディレクトリを作成することでAPIルートを作成できます。
上記のようなディレクトリ構成で、APIルートを作成することができます。ここではopenai.jsというファイル名でAPIルートを作成します。
openai.jsには、OpenAIのAPIを呼び出すための処理を記述していきます。まずは、Next.jsのAPIルートでは、requestとresponseという2つの引数を受け取ることができます。requestにはHTTPリクエストに関する情報が、responseにはHTTPレスポンスを返すためのメソッドが格納されています。
次に、OpenAIのAPIを呼び出すために必要なAPIキーを環境変数から取得します。APIキーはNext.jsの環境変数機能を活用することで、安全に管理することができます。環境変数については、Next.jsの公式ドキュメントを参照してください。
次に、HTTPリクエストから送信されたデータを取得します。OpenAIのAPIでは、リクエストボディに必要なパラメータをJSON形式で渡す必要があります。requestオブジェクトのbodyプロパティを参照することで、リクエストボディを取得することができます。
取得したデータをOpenAIのAPIに渡し、レスポンスを取得します。ここでは、axiosというライブラリを使用してHTTPリクエストを送信し、レスポンスを受け取ることでOpenAIのAPIとの連携を実現します。
最後に、レスポンスを返すためのメソッドであるsendを使用して、HTTPレスポンスを返します。ここでは、レスポンスのステータスコードとして200を指定し、レスポンスのボディにOpenAIのAPIから受け取ったデータを指定します。
これでAPIルートの実装は完了です。
APIルートが実装できたら、次は実際にAPIを呼び出すことで、OpenAIのAPIとの連携を実現していきます。ここでは、ReactのコンポーネントであるButtonを作成し、クリックイベントを設定します。
上記のコードでは、reactとaxiosを使用して、APIルートにHTTPリクエストを送信しています。HTTPリクエストはpromiseを返すため、thenメソッドを使用してレスポンスを受け取り、結果を表示するようにしています。
また、APIルートに渡すパラメータは、prompt、max_tokens、temperature、top_p、frequency_penalty、presence_penalty、stopの7つです。それぞれのパラメータについては、OpenAIの公式ドキュメントを参照してください。
以上でNext.jsとOpenAIのAPIが連携するための準備ができました。まずはNext.jsアプリケーションを起動し、Buttonをクリックすると、APIルートにHTTPリクエストが送信され、OpenAIのAPIから受け取った結果が表示されることを確認します。
まずは、promptに「Hello,」という文字列を指定した場合の動作を確認してみましょう。すると、以下のような結果が表示されるはずです。
次に、promptに「I love」、temperatureに0.3を指定した場合の動作を確認してみましょう。すると、以下のような結果が表示されるはずです。
このように、APIルートに送信するパラメータを変更することで、さまざまな結果を取得することができます。また、OpenAIのAPIは機械学習を活用しており、学習データを更新することでさらに高い精度の結果を取得することができます。
今回はNext.jsとOpenAIのAPIを連携する方法について考えてみました。Next.jsのAPIルートを活用することで、簡単にOpenAIのAPIと連携することができることがわかりました。また、OpenAIのAPIを使用することで、さまざまなサービスの開発が可能となるため、今後さらに注目が集まることが予想されます。
次は、実際にNext.jsとOpenAIのAPIを使用して、さまざまなアプリケーションの開発に挑戦してみるのも良いでしょう。また、OpenAIのAPIにはさまざまな機能が提供されているため、より高度な連携方法を模索するのも面白いかもしれません。ぜひ、Next.jsとOpenAIのAPIを活用して、新しいサービスの開発に挑戦してみてください。
診断を受けるとあなたの現在の業務委託単価を算出します。今後副業やフリーランスで単価を交渉する際の参考になります。また次の単価レンジに到達するためのヒントも確認できます。