ツールは、エージェントが現実世界とやり取りするための手段です。
独自のエージェントを構築する際には、そのエージェントが利用可能なツールのリストを提供する必要があります。ツールは、次のような要素で構成されます。
- 名前(str):必須で、提供されるツールのセット内で一意である必要があります。
- 説明(str):オプションですが、ツールの使用方法を決定するためにエージェントによって利用されることがおすすめされます。
OpenAI Functionsは、特定のOpenAIモデル(gpt-3.5-turbo-0613やgpt-4-0613など)が、関数の呼び出しを検出し、それに対して渡すべき引数を含むJSONオブジェクトを出力するように微調整されたものです。API呼び出しで関数を記述し、モデルがそれらの関数を呼び出すための引数を出力するように選択できます。OpenAI Function APIの目標は、汎用のテキスト補完やチャットAPIよりも、より確実で有用な関数呼び出しを返すことです。
OpenAI Functions Agentは、これらのモデルと連携するように設計されています。プログラムでは、必要なLangChainパッケージをインストールし、LLM(言語モデル)やツールを初期化してOpenAI Functions Agentをセットアップしています。Agentは、質問に対する回答や数学に関する質問に対する計算など、さまざまなタスクに対応できます。プログラム内の具体的な処理例も示されています。
pip install openai google-search-results
from langchain import LLMMathChain, OpenAI, SerpAPIWrapper, SQLDatabase, SQLDatabaseChain
API呼び出しにおいて、gpt-3.5-turbo-0613
およびgpt-4-0613
に関数を説明し、モデルが関数を呼び出すための引数を含むJSONオブジェクトを出力するように選択できます。Chat completions APIは関数を呼び出しません。代わりに、モデルは関数を呼び出すためのJSONを生成し、コード内でその関数を呼び出すために使用できます。
最新のモデル(gpt-3.5-turbo-0613
およびgpt-4-0613
)は、関数が呼び出されるべきかどうかを検出し(入力に依存)、関数のシグネチャに準拠したJSONで応答するように微調整されています。この機能には潜在的なリスクも伴います。ユーザーを代表して世界に影響を与える行動(メールの送信、オンラインへの投稿、購入など)を起こす前に、ユーザー確認フローを構築することを強くお勧めします。
Note 関数は、モデルが訓練された構文でシステムメッセージに注入されます。これは関数がモデルのコンテキスト制限に対してカウントされ、入力トークンとして請求されることを意味します。コンテキスト制限に達する場合、関数の数や関数パラメータの長さを制限することをお勧めします。
関数呼び出しを使用すると、モデルからより信頼性のある構造化データを取得できます。例えば、次のことができます:
[ | |
{ | |
"番号": 1, | |
"英語名": "bulbasaur", | |
"日本語名": "フシギダネ" | |
}, | |
{ | |
"番号": 2, | |
"英語名": "ivysaur", | |
"日本語名": "フシギソウ" |
var wio_jp_server = '{SERVER_ADRESS}' //WioNodeの日本サーバーアドレス | |
var wio_access_token_1 = '{API_TOKEN_1}' // WioNode1のAPI Token | |
var wio_access_token_2 = '{API_TOKEN_2}' // WioNode2のAPI Token | |
var spreadsheetId = '{SPREADSHEET_ID}' // スプレッドシートのID | |
function wio() { | |
var moisture = getMoisture() // WioNode1から水分データを取得 | |
var temperature = getTemperature() // WioNode2から気温データを取得 | |
var humidity = getHumidity() // WioNode2から湿度情報を取得 | |
var lux = getLux() // WioNode1から照度情報を取得 |
#! /usr/bin/env python3 | |
from mvnc import mvncapi as mvnc | |
import sys | |
import numpy | |
import cv2 | |
path_to_networks = './' | |
path_to_images = '../../data/images/' | |
graph_filename = 'graph' | |
#image_filename = path_to_images + 'cat.jpg' |
'use strict'; | |
process.env.DEBUG = 'actions-on-google:*'; | |
const App = require('actions-on-google').ApiAiApp; | |
const exec = require('child_process').exec; | |
const kinako_adress = "https://xxxxxxxx.ap.ngrok.io/kinako_today" | |
const anko_adress = "https://xxxxxxxx.ap.ngrok.io/anko_today" | |
const kinako_adress_2 = "https://xxxxxxxx.ap.ngrok.io/kinako_month" | |
const anko_adress_2 = "https://xxxxxxxx.ap.ngrok.io/anko_month" |
'use strict'; | |
process.env.DEBUG = 'actions-on-google:*'; | |
const App = require('actions-on-google').ApiAiApp; | |
const exec = require('child_process').exec; | |
const camera_adress = "https://7bdaf661.ap.ngrok.io/camera" | |
const what_adress = "https://7bdaf661.ap.ngrok.io/what" | |
const face_adress = "https://7bdaf661.ap.ngrok.io/face" | |
const who_adress = "https://7bdaf661.ap.ngrok.io/who" |