早速コードです
function json_mode(text) {
// OpenAIのAPIキーを取得
var apiKey = PropertiesService.getScriptProperties().getProperty('OPENAI_API');
var url = 'https://api.openai.com/v1/chat/completions';
// APIリクエストのペイロードを作成
var payload = {
messages: [
{
role: "system",
content: 'あなたは入力された文章から質問を抽出して要約し、json形式で返すChatBOTとして振る舞ってください\
入力される文章とそれに対するjsonの生成例を以降の文章に入力しますので、参考にしてください。\
入力文:「質問!来週暇なんだけど、週末におすすめのカフェはある?あと、最近の流行ファッションが知りたいから教えてよ。カフェに行くときに着たいなーって思って。ところで、あんたの名前って?」\
json形式{"questions": [{"question":"週末におすすめのカフェはありますか?"}{"question":"最近の流行ファッションはなんですか?"}{"question":"あなたの名前はなんですか?"}}\
入力文:「質問!カニの味を知っていますか?」\
json形式{"questions": [{"question":"カニの味を知っていますか?"}}\
入力文:「質問!私は人間です。」\
json形式{"questions": [{"question":"質問無し"}}\
質問として認識できる文章が存在しない場合は、{"question":"質問無し"}}と返してください'
},
{
role: "user",
content: text
}
],
model: "gpt-3.5-turbo-1106",
};
// APIリクエストのオプションを設定
var options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload),
'headers': {
'Authorization': 'Bearer ' + apiKey
}
};
// OpenAIのAPIにリクエストを送信し、応答を取得
var response = UrlFetchApp.fetch(url, options);
var result = JSON.parse(response.getContentText());
return result; // JSON形式の応答を返す
}
これを実行すると、
“content”:”{\”questions\”: [{\”question\”:\”週末におすすめのカフェはありますか?\”}{\”question\”:\”最近の流行ファッションはなんですか?\”}]}”}
みたいに返ってきます
以下のコードみたいにしたら、関数自体がスッキリさせられそうですね
var json_system = 'あなたは入力された文章から質問を抽出して要約し、json形式で返すChatBOTとして振る舞ってください\
入力される文章とそれに対するjsonの生成例を以降の文章に入力しますので、参考にしてください。\
入力文:「質問!来週暇なんだけど、週末におすすめのカフェはある?あと、最近の流行ファッションが知りたいから教えてよ。カフェに行くときに着たいなーって思って。ところで、あんたの名前って?」\
json形式{"questions": [{"question":"週末におすすめのカフェはありますか?"}{"question":"最近の流行ファッションはなんですか?"}{"question":"あなたの名前はなんですか?"}}\
入力文:「質問!カニの味を知っていますか?」\
json形式{"questions": [{"question":"カニの味を知っていますか?"}}\
入力文:「質問!私は人間です。」\
json形式{"questions": [{"question":"質問無し"}}\
質問として認識できる文章が存在しない場合は、{"question":"質問無し"}}と返してください'
text = "なにかしらのてきすと"
function json_output(text,json_system) {
// OpenAIのAPIキーを取得
var apiKey = PropertiesService.getScriptProperties().getProperty('OPENAI_API');
var url = 'https://api.openai.com/v1/chat/completions';
// APIリクエストのペイロードを作成
var payload = {
messages: [
{
role: "system",
content: json_system},
{
role: "user",
content: text
}
],
model: "gpt-3.5-turbo-1106",
};
// APIリクエストのオプションを設定
var options = {
'method': 'post',
'contentType': 'application/json',
'payload': JSON.stringify(payload),
'headers': {
'Authorization': 'Bearer ' + apiKey
}
};
// OpenAIのAPIにリクエストを送信し、応答を取得
var response = UrlFetchApp.fetch(url, options);
var result = JSON.parse(response.getContentText());
return result; // JSON形式の応答を返す
}
コメント