Skip to content

Instantly share code, notes, and snippets.

View PonDad's full-sized avatar

PonDad PonDad

View GitHub Profile

ツール(Tools)

ツールは、エージェントが現実世界とやり取りするための手段です。

カスタムツールの定義

独自のエージェントを構築する際には、そのエージェントが利用可能なツールのリストを提供する必要があります。ツールは、次のような要素で構成されます。

  • 名前(str):必須で、提供されるツールのセット内で一意である必要があります。
  • 説明(str):オプションですが、ツールの使用方法を決定するためにエージェントによって利用されることがおすすめされます。
@PonDad
PonDad / openai_functions_guide.md
Created September 4, 2023 07:30
OpenAI Functions Guide

OpenAI functions

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
@PonDad
PonDad / langchain_agent_guide.md
Created September 4, 2023 07:28
LangChain Agent Guide

エージェント Agents

エージェントの基本的なアイデアは、LLMを使用して実行する一連のアクションを選択することです。チェーンでは、アクションのシーケンスがコードでハードコードされます。エージェントでは、アクションとその順序を決定するための推論エンジンとして言語モデルが使用されます。

主要なコンポーネントは以下です:

エージェント Agent

これは次にどのステップを実行するかを決定するクラスです。言語モデルとプロンプトによって動作します。このプロンプトには以下のような内容が含まれることがあります:

  1. エージェントの個性(特定の方法で応答させるために役立つ)
@PonDad
PonDad / function_calling_guide.md
Last active September 3, 2023 23:01
Function calling Guide

Function calling(機能呼び出し)

API呼び出しにおいて、gpt-3.5-turbo-0613およびgpt-4-0613に関数を説明し、モデルが関数を呼び出すための引数を含むJSONオブジェクトを出力するように選択できます。Chat completions APIは関数を呼び出しません。代わりに、モデルは関数を呼び出すためのJSONを生成し、コード内でその関数を呼び出すために使用できます。

最新のモデル(gpt-3.5-turbo-0613およびgpt-4-0613)は、関数が呼び出されるべきかどうかを検出し(入力に依存)、関数のシグネチャに準拠したJSONで応答するように微調整されています。この機能には潜在的なリスクも伴います。ユーザーを代表して世界に影響を与える行動(メールの送信、オンラインへの投稿、購入など)を起こす前に、ユーザー確認フローを構築することを強くお勧めします。

Note 関数は、モデルが訓練された構文でシステムメッセージに注入されます。これは関数がモデルのコンテキスト制限に対してカウントされ、入力トークンとして請求されることを意味します。コンテキスト制限に達する場合、関数の数や関数パラメータの長さを制限することをお勧めします。

関数呼び出しを使用すると、モデルからより信頼性のある構造化データを取得できます。例えば、次のことができます:

@PonDad
PonDad / rpi_setting_cheat_sheet.md
Created August 27, 2023 21:51
Configuration cheat sheet for raspberry pi

Raspberry Pi 設定チートシート

設定

vncとi2cを有効化する

setting -> raspberry pi configuration -> interfaces -> vnc i2c

日本語化・文字化け防止UTF−8指定

[
{
"番号": 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から照度情報を取得
@PonDad
PonDad / app.py
Created November 11, 2017 10:36
【Movidius™NCS&RaspberryPi】リアルタイム物体認識【TensorFlow】
#! /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'
@PonDad
PonDad / index.js
Created October 8, 2017 02:09
Googleホームアプリ「宿題の時間」のGoogle Cloud Functions実行ファイル
'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"
@PonDad
PonDad / index.js
Created June 11, 2017 09:19
Samuel L Jackson's face recognition with Google Assistant & Raspberry Pi
'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"