🔰

ColdFusion で ChatGPT の API 入門

2023/04/25に公開

はじめまして。
Zennで記事を書いてみることにしました。

初投稿の記事なので、ウォーミングアップ的な感じで
タイトル通りのことを実践していきます。


Zennで検索したら1件もなかった件について

とりあえずChatGPTに書き方聞いてみた

とりあえず実行してみた

このままコピペして実行してみたら怒られました。

<cfscript>
    apiEndpoint = "https://api.openai.com/v1/engines/davinci-codex/completions";
    apiKey = "YOUR_API_KEY_HERE";
    requestData = {"prompt": "Hello, ChatGPT!", "max_tokens": 50};
    headers = [{"name": "Content-Type", "value": "application/json"}, {"name": "Authorization", "value": "Bearer #apiKey#"}];

    httpService = new http();
    response = httpService.post(
        url = apiEndpoint,
        headers = headers,
        body = serializeJSON(requestData)
    );
    writeDump(response.fileContent);
</cfscript>


post関数がねぇ とな?

CFDocs を参考にしながら修正しました。
https://cfdocs.org/cfhttp

<cfscript>
    apiEndpoint = "https://api.openai.com/v1/chat/completions";
    apiKey = "YOUR_API_KEY_HERE";
    requestData = {"messages": [{"role": "user", "content": "Hello, ChatGPT!"}], "max_tokens": 50, "model": "gpt-3.5-turbo"};

    httpService = new http();
	httpService.setUrl(apiEndpoint);
	httpService.setMethod("POST");
	httpService.setCharset("utf-8");
	httpService.addParam(type="header", name="Authorization", value="Bearer #apiKey#");
	httpService.addParam(type="header", name="Content-Type", value="application/json");
	httpService.addParam(type="body", value=serializeJSON(requestData));

	response = httpService.send().getPrefix();
    writeDump(response.fileContent);
</cfscript>

そしたら応答は返ってきましたが、APIキーを指定していませんでした☆

{ "エラー": { "メッセージ": "不正な API キーが提供されました: YOUR_API*****HERE。API キーは https://platform.openai.com/account/api-keys にあります。"," type": "invalid_request_error", "param": null, "code": "invalid_api_key" } }

どこで取得すれば良いかも書いてくれるの親切ですね!

APIキーの発行

Open AI へアクセスし、API Keyを発行します。
https://platform.openai.com/account/api-keys


「+ Create new secret key」をクリック


キー名を入力し、「Create secret key」をクリック


キーが発行できました!

リベンジ

レスポンスが返ってきました!

{"model":"gpt-3.5-turbo-0301","usage":{"prompt_tokens": 14,"completion_tokens":10,"total_tokens":24},"choices":[{"message":{"role":"assistant","content":"こんにちは! 今日はどうすればいいですか?" },"finish_reason":"停止","インデックス":0}]}

"model":"gpt-3.5-turbo-0301"ってなんだ?

AIにも色々あるらしい

公式サイトに分かりやすい一覧が掲載されていました。
https://platform.openai.com/docs/models

わたしが今回使ったgpt-3.5-turbo-0301言語モデルですが、
音声をテキストに変換したり、テキストを数値に変換したりと
様々なモデルがあるようです。

AIって人の言葉を理解してほにゃららするイメージが強かったな、
言語以外にも使い道があるのか!すごいなぁ

他のAPIも叩いてみて、AIのことを知りたいですねo(^-^ o )

コラボスタイル Developers

Discussion