opentool_dart
English · 中文
An OpenTool JSON Spec Parser for dart with ToolDrivers.
Inspired by OpenAPI, OpenRPC, and OpenAI function calling
example.
Features
- Load OpenTool json file, and convert to dart object. See OpenTool Specification.
- ToolDriver abstract class for LLM function calling support.
- Support JSON Specification/Driver:
- HTTP: OpenAPI3/HTTP
- JSON-RPC: OpenRPC/JSON-RPC
- Modbus: OpenModbus/RTU/ASCII/TCP/UDP
- dll/dylib: OpenDyn
- Serial Port
- MCP:stdio, Tools
Usage
According to /example/opentool_dart_example.dart
.
- From JSON String
Future<void> main() async {
String jsonString = "{...OpenTool String...}";
OpenToolLoader openToolLoader = OpenToolLoader();
OpenTool openTool = await openToolLoader.load(jsonString);
}
- From JSON File
Future<void> main() async {
String jsonPath = "$currentWorkingDirectory/example/json/$jsonFileName";
OpenToolLoader openToolLoader = OpenToolLoader();
OpenTool openTool = await openToolLoader.loadFromFile(jsonPath);
}
Note
Serial Port
- The lib
libserialport
need environmentVariableLIBSERIALPORT_PATH
to be set to the path of thelibs/serial_port/windows/libserialport.dll
(Windows) orlibs/serial_port/macos/libserialport.dylib
(macOS)