GPT関数呼び出しの基本
❖ 目次:
- はじめに
- GPTの機能呼び出しについて
- GPTの基本的な使い方
- GPTの関数の利用方法
- 4.1 GPT関数の基本構造
- 4.2 関数呼び出しの例:天気情報の取得
- 4.3 関数呼び出しの例:ファイル保存
- GPT関数呼び出しのループ処理
- 構造化された応答の取得方法
- 関数呼び出しの利点と注意点
- GPT関数呼び出しの応用例
- まとめ
- FAQ
❖ はじめに
GPT(Generative Pre-trained Transformer)の機能呼び出しについて話しましょう。GPTはクラウド上にある一種の脳のようなもので、Chat GPTなどのアプリを介して会話することができます。また、APIを介してコードを書くことでもGPTと会話することができます。GPTの機能呼び出しは最近追加されたもので、非常に便利ですが、理解するのが少し難しい場合もあります。このビデオでは、GPTの機能呼び出しがどのようなものか、どのように活用できるかを簡単に説明します。
❖ GPTの機能呼び出しについて
GPTの機能呼び出しは、GPTの能力を拡張するためのものです。例えば、「ストックホルムで雨が降っていますか?」という質問をGPTにすると、GPTは「get weather」という関数を呼び出して実際の天気情報を取得します。関数呼び出しは、APIのリクエストボディに関数のリストを含めることで実現します。
❖ GPTの基本的な使い方
GPTの基本的な使い方は以下のとおりです。
- JavaScriptのコードを用意する
- OpenAIキーを設定する
- モデルを選択する
- GPTに質問を送信し、回答をログに記録する
以下に具体的なコードの例を示します。
const openai = require('openai');
// OpenAIキーの設定
openai.configure({
apiKey: 'your-api-key',
});
// モデルの選択
const model = 'gpt-3.5-turbo';
// 質問の送信と回答のログ
openai.complete({
model: model,
question: 'Is it raining in Stockholm?',
maxTokens: 100,
}).then((response) => {
console.log(response.choices[0].text);
}).catch((err) => {
console.error(err);
});
これにより、モデルと質問を選択し、GPTに質問を送信して回答を取得できます。
❖ GPTの関数の利用方法
GPTの関数呼び出しを活用することで、GPTの機能を拡張できます。以下に関数の利用方法と具体的なコード例を示します。
GPT関数は以下のような構造を持ちます。
{
"function": "関数名",
"inputs": {
"パラメータ1": "値1",
"パラメータ2": "値2",
...
}
}
天気情報を取得するための関数呼び出しの例を示します。
{
"function": "get_weather",
"inputs": {
"city": "Stockholm"
}
}
この例では、「get_weather」という関数を呼び出し、city
というパラメータにStockholm
という値を渡しています。
ファイルを保存するための関数呼び出しの例を示します。
{
"function": "save_file",
"inputs": {
"filename": "song.txt",
"content": "曲の歌詞"
}
}
この例では、「save_file」という関数を呼び出し、filename
というパラメータにsong.txt
という値、content
というパラメータに曲の歌詞を渡しています。
❖ GPT関数呼び出しのループ処理
GPT関数呼び出しのループ処理を使用することで、関数の連続呼び出しを行うことができます。以下にループ処理の例を示します。
let messages = [
{
'role': 'system',
'content': 'You give short answers',
},
{
'role': 'user',
'content': 'Is it raining in Stockholm?',
}
];
while (true) {
const response = await openai.complete({
model: model,
messages: messages,
});
const lastMessage = response.choices[0];
messages.push(lastMessage);
if (lastMessage.role === 'assistant' && lastMessage.content.includes('function call')) {
const functionCall = JSON.parse(lastMessage.content);
if (functionCall.function === 'get_weather') {
// 天気情報の取得処理を実行する
} else if (functionCall.function === 'save_file') {
// ファイル保存処理を実行する
}
} else {
break;
}
}
この例では、ループ処理を使用してGPTに連続的に質問を送信し、関数呼び出しの指示を受け取るまで繰り返します。関数呼び出しの指示があれば、それに応じた処理を実行します。
これにより、GPT関数呼び出しのループ処理を実現できます。
❖ 構造化された応答の取得方法
GPTの応答は、デフォルトでは任意のフォーマットで返されますが、特定の構造で応答を得る場合は、関数呼び出しを使用することができます。
たとえば、以下のように関数呼び出しを指定することで、構造化された応答を得ることができます。
const response = await openai.complete({
model: model,
question: 'What is the main language spoken in Paris?',
functionCall: {
'function': 'get_language',
'inputs': {
'city': 'Paris'
}
},
});
これにより、構造化された応答を取得することができます。
❖ 関数呼び出しの利点と注意点
関数呼び出しの利点は以下のとおりです。
- GPTの機能を拡張できる
- 構造化された応答を得ることができる
- APIとの連携が容易になる
注意点としては、関数の定義や呼び出し方法に一定の制約があることや、ループ処理による応答の取得が必要な場合があることが挙げられます。
関数呼び出しを利用することで、GPTの機能を最大限に活用できるでしょう。
❖ GPT関数呼び出しの応用例
GPT関数呼び出しの応用例としては、以下のようなものがあります。
- ファイルの保存や読み込み
- 外部APIとの連携
- データベースへの書き込みや読み込み
- 構造化された情報の取得
これらの応用例を活用することで、GPTの機能をさらに拡張することができます。
❖ まとめ
以上が、GPTの機能呼び出しについての説明です。GPTの機能呼び出しは、GPTの能力を拡張し、構造化された応答を得るための重要な機能です。活用方法や注意点についても理解しておきましょう。
❖ FAQ
Q: GPT関数呼び出しはどのように使われますか?
A: GPT関数呼び出しは、GPTの能力を拡張し、構造化された応答を得るために使用されます。関数呼び出しにより、GPTに特定の処理を実行させることができます。
Q: GPT関数呼び出しのループ処理は必要ですか?
A: GPT関数呼び出しのループ処理は、関数の連続呼び出しや応答の受け取りが必要な場合に使用されます。ループ処理を使用することで、GPTと対話しながら情報を取得することができます。
Q: GPT関数呼び出しの注意点はありますか?
A: GPT関数呼び出しの注意点としては、関数の定義や呼び出し方法に一定の制約があることや、ループ処理による応答の取得が必要な場合があることが挙げられます。
Q: GPT関数呼び出しはどのように拡張されますか?
A: GPT関数呼び出しは、関数の定義と呼び出し方法を指定することで拡張されます。関数の定義は、関数の名前とパラメータの形式を指定します。
Q: GPT関数呼び出しはどのように終了しますか?
A: GPT関数呼び出しは、GPTからの最終応答によって終了します。最終応答には、"finished": true
というフラグが含まれます。これにより、ループ処理を終了することができます。