Claude APIとGASで関数呼び出し(tools)を使って、児童虐待対応の最重要ポイント「1個だけに絞って」出力してみた
はじめに
こんにちは。
児童虐待が増えています。
・・・
難しいですよね。
そうなんです。児童福祉はとても大事なのですが、なんだか堅苦しい、自分とは遠いお話のように聞こえてしまうのです。
こんなとき、もっとわかりやすく、シンプルに教えてほしいですよね。
今回はClaude APIとGASを使って、Toolsを使ってみたいと思います。OpenAI APIでいうところのFunction Calling、いわゆる関数呼び出しというやつですね。
今回は関数を呼び出すことよりも、JSON modeとして、特定の形式に基づいた出力をさせればOKとします。
時間がないので省略しますが、Claudeが特定書式での出力を行ってくれれば、児童虐待に関する周知・啓発活動がもっと効率よく、より幅広い層に行えるはずです。
SNS、チャットなど、この機会にぜひ児童虐待に関する知識を広げていきましょう。
入力する文章
まずは、政府広報の児童虐待の説明を見ていきましょう。
HPの方が読みやすい、などと言ってはいけません。
let userMessage1 = `
児童虐待かも?と思ったら「189」(いちはやく)こどもたちの未来を守るために(以下略。続きは政府広報HPを読んでください。必ず。)
`
コード
続いて、これらを形式に合わせて要約してもらいます。今回はtitleとsummaryに格納していただきます。
function Claude3_tool() {
let tools1 = [
{
"name": "development_disorder_child_summary",
"description": "発達障害や幼児に関するニュースや文章が入力したときに使用し、文章を箇条書きで要約するものです",
"input_schema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "タイトル見出しを作成します",
},
"summary": {
"type": "string",
"description": "子供の困りごとに関する知識やニュースを箇条書きに要約したものを出力します。",
},
},
"required": []
},
}
]
const url = 'https://api.anthropic.com/v1/messages';
const payload = {
model: "claude-3-haiku-20240307",
max_tokens: 4096,
messages: [{"role": "user", "content": userMessage1}],
tools: tools1
};
const options = {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': CLAUDE_API_KEY,
'anthropic-version': '2023-06-01',
'anthropic-beta': 'tools-2024-04-04',
},
payload: JSON.stringify(payload),
};
try {
let response = JSON.parse(UrlFetchApp.fetch(url, options).getContentText())
console.log(response)
console.log(response.content[0])
if(response.content[0].type == "tool_use") {
// ツールの中身を取得する!
let tool_name = response.content[0].name
let tool_arguments = response.content[0].input
if(tool_name == "development_disorder_child_summary") {
console.log("ツールです",tool_arguments)
development_disorder_child_summary(tool_arguments)
}
} else {
console.log("ツールではない:",response.content[0].text)
}
} catch {
console.log("エラー")
return "claudeでエラー"
}
}
function development_disorder_child_summary (input) {
// inputの中身を取り出す
let title = input.title
let summary = input.summary
console.log(title,summary)
// 何かしらの処理(例えばTwitterに投稿したり、Googleスプレッドシートに書き込んだり、Chatしたりして、児童虐待に関する知識を普及・啓発するコード
}
出力結果
{ id: 'msg_01Npo834RiY8jnLJjGter5QK',
type: 'message',
role: 'assistant',
model: 'claude-3-haiku-20240307',
stop_sequence: null,
usage: { input_tokens: 2726, output_tokens: 317 },
content:
[ { type: 'tool_use',
id: 'toolu_01RxobQisiuEFmpbXtHVAzG6',
name: 'development_disorder_child_summary',
input: [Object] } ],
stop_reason: 'tool_use' }
{ type: 'tool_use',
id: 'toolu_01RxobQisiuEFmpbXtHVAzG6',
name: 'development_disorder_child_summary',
input:
{ title: '児童虐待への対応',
summary: '1. 児童虐待とは\n- 身体的虐待、性的虐待、ネグレクト、心理的虐待の4つのタイプがある\n- 虐待は子どもの心身に深刻な影響を及ぼす\n\n2. 虐待サインを見逃さない\n- 子どもや保護者の様子に「何か変だ」と感じたら気づく\n- 服装の汚れ、落ち着きのなさ、保護者の孤立など、複数の虐待サインに気づく\n\n3. 早期発見・通報が大切\n- 「189(いちはやく)」の虐待対応ダイヤルに通報\n- 匿名でも構わず、ためらわずに通報することが子どもを守ることにつながる' } }
児童虐待への対応
1. 児童虐待とは
身体的虐待、性的虐待、ネグレクト、心理的虐待の4つのタイプがある
虐待は子どもの心身に深刻な影響を及ぼす
虐待サインを見逃さない
子どもや保護者の様子に「何か変だ」と感じたら気づく
服装の汚れ、落ち着きのなさ、保護者の孤立など、複数の虐待サインに気づく
早期発見・通報が大切
「189(いちはやく)」の虐待対応ダイヤルに通報
匿名でも構わず、ためらわずに通報することが子どもを守ることにつながる
改善
いまいちですね。
私はもっと、「何かあったら動ける!!!!」「絶対にこれだけは覚えてほしい!」というポイントに絞った出力が効果的だと思うのです。
toolsを改善して、より的を絞った出力をしてもらいましょう。
let tools1 = [
{
"name": "development_disorder_child_summary",
"description": "発達障害や幼児に関するニュースや文章が入力したときに使用し、文章を箇条書きで要約するものです",
"input_schema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "タイトル見出しを作成します",
},
"summary": {
"type": "string",
"description": "子供の困りごとに関する知識やニュースを箇条書きに要約したものを出力します。",
},
"importantaction": {
"type": "string",
"description": "児童虐待かもしれないと思ったときに、必ず取るべき1つの行動アクションを端的に記載する。児童虐待に詳しくない人も、記事の中で、これだけは覚えておいてほしいポイントを1つに絞って端的に、印象的なものをここに1つだけ書き込む。",
},
},
"required": []
},
}
]
impotantactionを追加しました。
toolsは、3~4文程度、「説明」することが大事だそうです。
結果を見ていきましょう。
使用した関数はこちら。
function development_disorder_child_summary (input) {
// inputの中身を取り出す
let title = input.title
let summary = input.summary
let action = input.importantaction
console.log(title)
console.log(summary)
console.log(importantaction)
// 何かしらの処理(例えばTwitterに投稿したり、Googleスプレッドシートに書き込んだり、Chatしたりする
}
結果はこちら。
児童虐待への対応
児童虐待の定義と種類
身体的虐待、性的虐待、ネグレクト、心理的虐待の4つに分類される
虐待は子どもの心身に深刻な影響を与える
虐待の兆候
子どもや保護者の行動に特徴的なサインがある
一つだけでなく複数の兆候がある場合に虐待が疑われる
虐待を疑ったら
児童相談所虐待対応ダイヤル「189」に連絡する
匿名で通報でき、専門家が対応してくれる
虐待の確信がなくてもためらわずに連絡することが重要
児童虐待の疑いがある場合は、すぐに児童相談所虐待対応ダイヤル「189」に連絡すること。確信がなくてもためらわずに通報し、専門家に状況を伝えることが大切。
すばらしい機能です。
まとめ
今回は、児童虐待相談ダイヤル「189」の解説でした。
みなさん、189の使い方、覚えていただけたでしょうか。
この記事が気に入ったらサポートをしてみませんか?