From 02e335c99526fe52dee0d0a016aee6bf62d874c2 Mon Sep 17 00:00:00 2001 From: sigoden Date: Tue, 9 Jul 2024 21:17:12 +0800 Subject: refactor: demo tools/agents (#67) --- tools/demo_js.js | 24 ++++++++++++++++++++++++ tools/demo_py.py | 30 ++++++++++++++++++++++++++++++ tools/demo_sh.sh | 16 ++++++++++++++++ tools/demo_tool.js | 24 ------------------------ tools/demo_tool.py | 30 ------------------------------ tools/demo_tool.sh | 16 ---------------- 6 files changed, 70 insertions(+), 70 deletions(-) create mode 100644 tools/demo_js.js create mode 100644 tools/demo_py.py create mode 100755 tools/demo_sh.sh delete mode 100644 tools/demo_tool.js delete mode 100644 tools/demo_tool.py delete mode 100755 tools/demo_tool.sh (limited to 'tools') diff --git a/tools/demo_js.js b/tools/demo_js.js new file mode 100644 index 0000000..c8b7237 --- /dev/null +++ b/tools/demo_js.js @@ -0,0 +1,24 @@ +/** + * Demonstrate how to create a tool using Javascript and how to use comments. + * @typedef {Object} Args + * @property {string} string - Define a required string property + * @property {'foo'|'bar'} string_enum - Define a required string property with enum + * @property {string} [string_optional] - Define a optional string property + * @property {boolean} boolean - Define a required boolean property + * @property {Integer} integer - Define a required integer property + * @property {number} number - Define a required number property + * @property {string[]} array - Define a required string array property + * @property {string[]} [array_optional] - Define a optional string array property + * @param {Args} args + */ +exports.run = function run(args) { + for (const [key, value] of Object.entries(args)) { + console.log(`${key}: ${JSON.stringify(value)}`); + } + + for (const [key, value] of Object.entries(process.env)) { + if (key.startsWith("LLM_")) { + console.log(`${key}: ${value}`); + } + } +} diff --git a/tools/demo_py.py b/tools/demo_py.py new file mode 100644 index 0000000..d53cd0b --- /dev/null +++ b/tools/demo_py.py @@ -0,0 +1,30 @@ +import os +from typing import List, Literal, Optional + +def run( + boolean: bool, + string: str, + string_enum: Literal["foo", "bar"], + integer: int, + number: float, + array: List[str], + string_optional: Optional[str] = None, + array_optional: Optional[List[str]] = None, +) -> None: + """Demonstrate how to create a tool using Python and how to use comments. + Args: + boolean: Define a required boolean property + string: Define a required string property + string_enum: Define a required string property with enum + integer: Define a required integer property + number: Define a required number property + array: Define a required string array property + string_optional: Define a optional string property + array_optional: Define a optional string array property + """ + for key, value in locals().items(): + print(f"{key}: {value}") + + for key, value in os.environ.items(): + if key.startswith("LLM_"): + print(f"{key}: {value}") \ No newline at end of file diff --git a/tools/demo_sh.sh b/tools/demo_sh.sh new file mode 100755 index 0000000..da35e8f --- /dev/null +++ b/tools/demo_sh.sh @@ -0,0 +1,16 @@ +# @describe Demonstrate how to create a tool using Bash and how to use comment tags. +# @option --string! Define a required string property +# @option --string-enum![foo|bar] Define a required string property with enum +# @option --string-optional Define a optional string property +# @flag --boolean Define a boolean property +# @option --integer! Define a required integer property +# @option --number! Define a required number property +# @option --array+ Define a required string array property +# @option --array-optional* Define a optional string array property + +main() { + ( set -o posix ; set ) | grep ^argc_ + printenv | grep '^LLM_' +} + +eval "$(argc --argc-eval "$0" "$@")" \ No newline at end of file diff --git a/tools/demo_tool.js b/tools/demo_tool.js deleted file mode 100644 index c8b7237..0000000 --- a/tools/demo_tool.js +++ /dev/null @@ -1,24 +0,0 @@ -/** - * Demonstrate how to create a tool using Javascript and how to use comments. - * @typedef {Object} Args - * @property {string} string - Define a required string property - * @property {'foo'|'bar'} string_enum - Define a required string property with enum - * @property {string} [string_optional] - Define a optional string property - * @property {boolean} boolean - Define a required boolean property - * @property {Integer} integer - Define a required integer property - * @property {number} number - Define a required number property - * @property {string[]} array - Define a required string array property - * @property {string[]} [array_optional] - Define a optional string array property - * @param {Args} args - */ -exports.run = function run(args) { - for (const [key, value] of Object.entries(args)) { - console.log(`${key}: ${JSON.stringify(value)}`); - } - - for (const [key, value] of Object.entries(process.env)) { - if (key.startsWith("LLM_")) { - console.log(`${key}: ${value}`); - } - } -} diff --git a/tools/demo_tool.py b/tools/demo_tool.py deleted file mode 100644 index d53cd0b..0000000 --- a/tools/demo_tool.py +++ /dev/null @@ -1,30 +0,0 @@ -import os -from typing import List, Literal, Optional - -def run( - boolean: bool, - string: str, - string_enum: Literal["foo", "bar"], - integer: int, - number: float, - array: List[str], - string_optional: Optional[str] = None, - array_optional: Optional[List[str]] = None, -) -> None: - """Demonstrate how to create a tool using Python and how to use comments. - Args: - boolean: Define a required boolean property - string: Define a required string property - string_enum: Define a required string property with enum - integer: Define a required integer property - number: Define a required number property - array: Define a required string array property - string_optional: Define a optional string property - array_optional: Define a optional string array property - """ - for key, value in locals().items(): - print(f"{key}: {value}") - - for key, value in os.environ.items(): - if key.startswith("LLM_"): - print(f"{key}: {value}") \ No newline at end of file diff --git a/tools/demo_tool.sh b/tools/demo_tool.sh deleted file mode 100755 index da35e8f..0000000 --- a/tools/demo_tool.sh +++ /dev/null @@ -1,16 +0,0 @@ -# @describe Demonstrate how to create a tool using Bash and how to use comment tags. -# @option --string! Define a required string property -# @option --string-enum![foo|bar] Define a required string property with enum -# @option --string-optional Define a optional string property -# @flag --boolean Define a boolean property -# @option --integer! Define a required integer property -# @option --number! Define a required number property -# @option --array+ Define a required string array property -# @option --array-optional* Define a optional string array property - -main() { - ( set -o posix ; set ) | grep ^argc_ - printenv | grep '^LLM_' -} - -eval "$(argc --argc-eval "$0" "$@")" \ No newline at end of file -- cgit v1.2.3