とりあえず試したメモです。
目次
下準備
試してみたAPI
Groovy
chat.groovy
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.") }
String API_KEY
は取得したAPIキーを指定します。キーはPOST
でHTTPリクエスト
するときにAuthorization
ヘッダーにBearer
として指定します。def payload
のmodel
でChatGPTのモデルを指定します。指定できるリストはこちら1から選択して指定します。def payload
のmessages
がChatGPTとやり取りしているメッセージになります。system
は最初の設定をするところ。user
があなた。assistant
がChatGPTです。- ポイントは、
system
を除いて、今までこういった体でやり取りしてきた感じのメッセージをリクエストすることです。
- 送ったメッセージ基づいて、ChatGPTから返答が返ってきます。
実行結果
[user]: こんにちは!こちらはAPIから呼び出すテストをしています。 ちゃんと届いていますでしょうか。 [assistant]: こんにちは!はい、ちゃんと届いています。APIからの呼び出しテストが成功しましたね。何か他にお力になれることはありますか? [user]: 今のところない。 [assistant]: 了解です。何かあればいつでもご連絡ください。
- 実行結果は、送ったメッセージ+返答をくっつけて出力してみています。
参考
参照
-
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
が選択可能でした。 ↩︎