Go言語とOpenAI GPT-4 APIを活用してAIに会話をさせる方法

Go

OpenAIのGPT-4は、人間のような自然なテキストを生成することで知られています。今回は、Go言語を利用してこの強力なAPIにアクセスし、AIにテキストを生成させる方法を解説します。本記事では、GoでのOpenAI GPT-4 APIの設定方法、API呼び出し方法、そして得られた結果の解析方法について詳しく説明します。

OpenAI APIキーの取得

GPT-4を利用するためにはまず、OpenAIのウェブサイトからAPIキーを取得する必要があります。こちらからサインアップしてAPIキーを取得しましょう。

OpenAIのGPT APIを使いこなす:効率的なAIアプリケーション開発への一歩

OpenAIのGPT APIを使いこなす:効率的なAIアプリケーション開発への一歩
はじめに 近年、OpenAIのGPT-3は、その強大な自然言語処理能力により、AI界で大きな注目を浴びています。OpenAIのAPIを使用すれば、あなた自身のアプリケーションやサービスでこの能力を活用することが可能になります。本記事では、G...

GoによるOpenAI GPT-4 APIの利用

では実際にGo言語でOpenAIのGPT-4 APIを呼び出すコードを見てみましょう。以下のコードスニペットは、APIキーを利用してOpenAI APIに接続し、テキスト生成リクエストを行う例です。

package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

type GptRequest struct {
	Model    string `json:"model"`
	Messages []struct {
		Role    string `json:"role"`
		Content string `json:"content"`
	} `json:"messages"`
}

type GptResponse struct {
	Choices []struct {
		Message struct {
			Content string `json:"content"`
		} `json:"message"`
	} `json:"choices"`
}

func main() {
	var prompt string
	fmt.Println("Enter the topic:")
	fmt.Scanln(&prompt)
	url := "https://api.openai.com/v1/chat/completions"

	payload := &GptRequest{
		Model: "gpt-4",
		Messages: []struct {
			Role    string `json:"role"`
			Content string `json:"content"`
		}{
			{
				Role:    "user",
				Content: prompt,
			},
		},
	}

	jsonPayload, err := json.Marshal(payload)
	if err != nil {
		fmt.Println("error!")
		return
	}

	// Create a new HTTP request
	req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonPayload))
	if err != nil {
		fmt.Println("error!")
		return
	}
	req.Header.Set("Content-Type", "application/json")
	req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", "あなたのAPIキー"))

	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		fmt.Println("error!")
		return
	}

	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Println("error!")
		return
	}

	var gpt4Response GptResponse
	err = json.Unmarshal(body, &gpt4Response)
	if err != nil {
		fmt.Println("error!")
		return
	}
	text := gpt4Response.Choices[0].Message.Content
	fmt.Println("----------")
	fmt.Println(text)
	fmt.Println("----------")
}

このコードでは、プロンプトに入力した質問から回答を出力するシンプルなアプリケーションです。

APIへのアクセスに関してはnet/httpを利用して通信しています。

go run main.goコマンドを実行すると下記のようになります

go run main.go
Enter the topic:
日本の首都はどこですか?
----------
日本の首都は東京です。
----------

上記では日本の首都はどこですか?との質問にGPT-4から「日本の首都は東京です。」との回答が返ってきています

まとめ

この記事では、Go言語を使ってOpenAIのGPT-4 APIを利用する方法について解説しました。OpenAI APIを利用すると、人間のような自然なテキストを生成することが可能となります。Go言語の強力な機能と組み合わせれば、より高度なAIアプリケーションを開発することが可能になります。

それぞれの環境や目的に合わせて、上記のコードを適宜カスタマイズし、AIとの対話を楽しんでみてください。

なお、OpenAIのAPI利用には制限がありますので、詳細はOpenAIの公式ドキュメントをご参照ください。