当前位置:首页>php>[PHP] NEURON 工具包

[PHP] NEURON 工具包

  • 2026-09-02 16:26:57
[PHP] NEURON 工具包

NEURON 工具包

简介

所谓工具包,就是多个工具的集合。

工具继承NeuronAI\Tools\Toolkits\AbstractToolkit。 

NeuronAI\Agent\HandleTools中调用tools。

方法
说明
guidelines
定义工具包名字和作用
exclude
排除工具包中的工具
only
使用工具包中的子集
with
给工具包加工具
tools
用于工具实现调用

exclude相当于数组中排除某个值,only相当于使用数组中某些值,with相当于给数组加长度。

定义

需要定义工具包的名字和作用,以及工具包中的工具。

classTestToolkitextendsAbstractToolkit{publicfunctionguidelines(): ?string{returnparent::guidelines();    }publicfunctionprovide(): array{        $list = [            CalculateAgeTool::make(),            AddTimeTool::make(),            IsWeekendTool::make(),            LocationTool::make(),        ];return $list;    }}
classLocationToolextendsTool{publicfunction__construct(){parent::__construct(            name: 'get_current_weather',            description: '当你想查询指定城市的天气时非常有用。',        );    }protectedfunctionproperties(): array{return [new ToolProperty(                name: 'location',                type: PropertyType::STRING,                description: '城市或县区,比如北京市、杭州市、余杭区等。',                required: true            ),        ];    }publicfunction__invoke(string $location): string{        var_dump("tool setCallable", $location);        $weatherData = ['天津市' => '天津市:晴天,20-28°C,北风2级','上海市' => '上海市:多云,22-30°C,东南风3级','深圳市' => '深圳市:阵雨,25-32°C,南风4级',        ];return $weatherData[$location] ?? "{$location}:天气信息暂时不可用";    }}
class OpenAIAgent extends Agent {    protected function tools(): array {return [            TestToolkit::make()->only([                LocationTool::class,                CalculateAgeTool::class,            ]),        ];    }}
classIsWeekendTool{   ……publicfunction__invoke(string $date, ?string $timezone = null): string{        var_dump(__CLASS__);        ……   }}
classCalculateAgeTool{   ……publicfunction__invoke(string $date, ?string $timezone = null): string{        var_dump(__CLASS__);        ……   }}

使用

$agent = OpenAIAgent::make();$msg3 = new UserMessage("今天天津的天气怎么样?今天是周末吗?出生于1990年1月1日的人今年多大了?");$message = $agent->chat($msg3);echo$message->getContent();

结果

string(16) "tool setCallable"string(9) "天津市"string(49) "NeuronAI\Tools\Toolkits\Calendar\CalculateAgeTool"天津市今天天气晴朗,气温在20到28摄氏度之间,北风2级哦~ 今天是2024年7月15日星期一,所以不是周末呢。出生于1990年1月1日的人今年36岁啦~

例子中证明调用工具LocationTool和CalculateAgeTool,IsWeekendTool未被调用。

扫描识别二维码关注我们获取更多

最新文章

随机文章