From 0cc7d079c9352c73e1968a710aa7a075dcf2a0b5 Mon Sep 17 00:00:00 2001 From: sigoden Date: Fri, 7 Jun 2024 13:56:50 +0000 Subject: [PATCH] refactor: demo_tool inspect LLM_ env vars --- Argcfile.sh | 45 ++++++++++++++++++++++++++++++++++-------- scripts/create-tool.sh | 2 +- tools/demo_tool.js | 10 +++++++++- tools/demo_tool.py | 16 +++++++-------- tools/demo_tool.sh | 3 ++- 5 files changed, 56 insertions(+), 20 deletions(-) diff --git a/Argcfile.sh b/Argcfile.sh index 367eda0..2edf267 100644 --- a/Argcfile.sh +++ b/Argcfile.sh @@ -11,10 +11,10 @@ LANG_CMDS=( \ "py:python" \ ) -# @cmd Call the function +# @cmd Run the tool # @arg cmd![`_choice_cmd`] The function command # @arg json The json data -call() { +run-tool() { if _is_win; then ext=".cmd" fi @@ -128,16 +128,18 @@ list-tools() { # @cmd Test the project test() { - mkdir -p tmp/tests - names_file=tmp/tests/functions.txt - declarations_file=tmp/tests/functions.json - argc list-tools > "$names_file" - argc build --names-file "$names_file" --declarations-file "$declarations_file" - argc test-tools + test-tools } # @cmd Test call functions test-tools() { + tmp_dir="cache/tmp" + mkdir -p "$tmp_dir" + names_file="$tmp_dir/functions.txt" + declarations_file="$tmp_dir/functions.json" + argc list-tools > "$names_file" + argc build --names-file "$names_file" --declarations-file "$declarations_file" + if _is_win; then ext=".cmd" fi @@ -162,6 +164,33 @@ test-tools() { done } +# @cmd Test all demo tools +test-demo-tools() { + for item in "${LANG_CMDS[@]}"; do + lang="${item%:*}" + echo "---- Test demo_tool.$lang ---" + argc build-bin "demo_tool.$lang" + argc run-tool demo_tool '{ + "boolean": true, + "string": "Hello", + "string_enum": "foo", + "integer": 123, + "number": 3.14, + "array": [ + "a", + "b", + "c" + ], + "string_optional": "OptionalValue", + "array_optional": [ + "x", + "y" + ] +}' + echo + done +} + # @cmd Install this repo to aichat functions_dir install() { functions_dir="$(aichat --info | grep functions_dir | awk '{print $2}')" diff --git a/scripts/create-tool.sh b/scripts/create-tool.sh index 14e0ac3..bb0322c 100755 --- a/scripts/create-tool.sh +++ b/scripts/create-tool.sh @@ -44,7 +44,7 @@ EOF cat <<-'EOF' >> "$output" main() { - ( set -o posix ; set ) | grep ^argc_ # inspect all argc variables + ( set -o posix ; set ) | grep ^argc_ } eval "$(argc --argc-eval "$0" "$@")" diff --git a/tools/demo_tool.js b/tools/demo_tool.js index 4fd6f04..c8b7237 100644 --- a/tools/demo_tool.js +++ b/tools/demo_tool.js @@ -12,5 +12,13 @@ * @param {Args} args */ exports.run = function run(args) { - console.log(JSON.stringify(args, null, 2)); + 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 index 5eb4c09..d53cd0b 100644 --- a/tools/demo_tool.py +++ b/tools/demo_tool.py @@ -1,6 +1,6 @@ +import os from typing import List, Literal, Optional - def run( boolean: bool, string: str, @@ -22,11 +22,9 @@ def run( string_optional: Define a optional string property array_optional: Define a optional string array property """ - print(f"boolean: {boolean}") - print(f"string: {string}") - print(f"string_enum: {string_enum}") - print(f"integer: {integer}") - print(f"number: {number}") - print(f"array: {array}") - print(f"string_optional: {string_optional}") - print(f"array_optional: {array_optional}") + 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 index 0d24c75..da35e8f 100755 --- a/tools/demo_tool.sh +++ b/tools/demo_tool.sh @@ -9,7 +9,8 @@ # @option --array-optional* Define a optional string array property main() { - ( set -o posix ; set ) | grep ^argc_ # inspect all argc variables + ( set -o posix ; set ) | grep ^argc_ + printenv | grep '^LLM_' } eval "$(argc --argc-eval "$0" "$@")" \ No newline at end of file