Think Twice
IT技術メモ | ChatGPTのメモ
Created: 2023-04-19 / Updated: 2023-04-19

ChatGPTのAPIをサクっと試してみる


とりあえず試したメモです。

目次


下準備

  1. こちらで支払いの設定をしておいてください。
  2. こちらAPIキーを作成しておいてください。

試してみたAPI

Groovy

chat.groovy
Copy
import groovy.json.JsonOutput
import groovy.json.JsonSlurper

// https://platform.openai.com/docs/api-reference/chat
String API_KEY = "<YOUR-API-KEY>"
String API_URL = "https://api.openai.com/v1/chat/completions"

def payload = [
    model: "gpt-3.5-turbo",
    messages: [
        [role: "system", content: """
            |あなたは有能なアシスタントです。
        """.stripMargin()],

        [role: "user", content: """
            |こんにちは!こちらはAPIから呼び出すテストをしています。
            |ちゃんと届いていますでしょうか。
        """.stripMargin()],

        [role: "assistant", content: """
            |こんにちは!はい、ちゃんと届いています。APIからの呼び出しテストが成功しましたね。何か他にお力になれることはありますか?
        """.stripMargin()],

        [role: "user", content: """
            |今のところない。
        """.stripMargin()]
    ]
]

payload.messages
    .findAll { it.role in ['user', 'assistant'] }
    .each {
        println "[${it.role}]: ${it.content.trim()}"
    }

def urlConnection = new URL(API_URL).openConnection() as HttpURLConnection
urlConnection.requestMethod = 'POST'
urlConnection.doOutput = true
urlConnection.setRequestProperty('Content-Type', 'application/json')
urlConnection.setRequestProperty('Authorization', "Bearer ${API_KEY}")
urlConnection.outputStream.withWriter('UTF-8') { writer ->
    writer.write(JsonOutput.toJson(payload))
}

def response = urlConnection.responseCode

if (response == HttpURLConnection.HTTP_OK) {
    def result = urlConnection.inputStream.text
    def resultJson = new JsonSlurper().parseText(result)
    def message = resultJson.choices[0].message
    println("[${message.role}]: ${message.content}")

} else {
    println("POST request failed.")
}
実行結果
Copy
[user]: こんにちは!こちらはAPIから呼び出すテストをしています。
ちゃんと届いていますでしょうか。
[assistant]: こんにちは!はい、ちゃんと届いています。APIからの呼び出しテストが成功しましたね。何か他にお力になれることはありますか?
[user]: 今のところない。
[assistant]: 了解です。何かあればいつでもご連絡ください。

参考

参照


  1. 2023-04-19現在、/v1/chat/completionsだとgpt-4, gpt-4-0314, gpt-4-32k, gpt-4-32k-0314, gpt-3.5-turbo, gpt-3.5-turbo-0301が選択可能でした。 ↩︎