diff --git a/Makefile.languages b/Makefile.languages index 403f801..090c947 100644 --- a/Makefile.languages +++ b/Makefile.languages @@ -2,16 +2,19 @@ # This Makefile contains commands for building and testing language example implementations # Each language demonstrates usage of Hermes AI, Qwen Coder, and TTS endpoints -# Language list from webwords project -LANGUAGES := assembly awk bash brainfuck c clojure cobol cpp crystal csharp dart deno elixir erlang fortran fsharp go haskell java js julia kotlin lua matlab nim ocaml odin perl php powershell prolog python r ruby rust scala sql swift tcl v vbnet zig - # Docker image prefix IMAGE_PREFIX := ai-unturf +# Languages directory (now in public/) +LANGUAGES_DIR := public/languages + # Test endpoints -HERMES_ENDPOINT := https://hermes.ai.unturf.com/v1 -QWEN_ENDPOINT := https://qwen.ai.unturf.com/v1 -TTS_ENDPOINT := https://speech.ai.unturf.com/v1 +MODEL_ENDPOINT_1 := https://hermes.ai.unturf.com/v1 +MODEL_ENDPOINT_2 := https://qwen.ai.unturf.com/v1 +TTS_ENDPOINT_1 := https://speech.ai.unturf.com/v1 + +# Docker run environment variables +DOCKER_ENV := -e MODEL_ENDPOINT_1=$(MODEL_ENDPOINT_1) -e MODEL_ENDPOINT_2=$(MODEL_ENDPOINT_2) -e TTS_ENDPOINT_1=$(TTS_ENDPOINT_1) .PHONY: help help: @@ -29,27 +32,27 @@ help: @echo " make languages-stop-all - Stop all language containers" @echo " make languages-clean-all - Remove all language containers and images" @echo "" - @echo " Replace 'python' with any language: $(LANGUAGES)" + @echo " Supported languages: python, go, rust, ruby, commonlisp, scheme, bash, and more" @echo "" - @echo "Test Endpoints:" - @echo " Hermes: $(HERMES_ENDPOINT)" - @echo " Qwen: $(QWEN_ENDPOINT)" - @echo " TTS: $(TTS_ENDPOINT)" + @echo "Test Endpoints (via environment variables):" + @echo " MODEL_ENDPOINT_1: $(MODEL_ENDPOINT_1)" + @echo " MODEL_ENDPOINT_2: $(MODEL_ENDPOINT_2)" + @echo " TTS_ENDPOINT_1: $(TTS_ENDPOINT_1)" .PHONY: languages-list languages-list: @echo "Available language directories:" - @ls -1 languages/ + @ls -1 $(LANGUAGES_DIR)/ # Python language targets .PHONY: languages-build-python languages-build-python: - docker build -t $(IMAGE_PREFIX)-python languages/python/ + docker build -t $(IMAGE_PREFIX)-python $(LANGUAGES_DIR)/python/requests/ .PHONY: languages-test-python languages-test-python: @echo "Testing Python implementation..." - docker run --rm $(IMAGE_PREFIX)-python + docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-python .PHONY: languages-run-python languages-run-python: @@ -67,12 +70,12 @@ languages-clean-python: languages-stop-python # Go language targets .PHONY: languages-build-go languages-build-go: - docker build -t $(IMAGE_PREFIX)-go languages/go/ + docker build -t $(IMAGE_PREFIX)-go $(LANGUAGES_DIR)/go/http/ .PHONY: languages-test-go languages-test-go: @echo "Testing Go implementation..." - docker run --rm $(IMAGE_PREFIX)-go + docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-go .PHONY: languages-run-go languages-run-go: @@ -90,12 +93,12 @@ languages-clean-go: languages-stop-go # JavaScript/Node.js language targets .PHONY: languages-build-js languages-build-js: - docker build -t $(IMAGE_PREFIX)-js languages/js/ + docker build -t $(IMAGE_PREFIX)-js $(LANGUAGES_DIR)/javascript/nodejs/ .PHONY: languages-test-js languages-test-js: @echo "Testing JavaScript implementation..." - docker run --rm $(IMAGE_PREFIX)-js + docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-js .PHONY: languages-run-js languages-run-js: @@ -113,12 +116,12 @@ languages-clean-js: languages-stop-js # Rust language targets .PHONY: languages-build-rust languages-build-rust: - docker build -t $(IMAGE_PREFIX)-rust languages/rust/ + docker build -t $(IMAGE_PREFIX)-rust $(LANGUAGES_DIR)/rust/ .PHONY: languages-test-rust languages-test-rust: @echo "Testing Rust implementation..." - docker run --rm $(IMAGE_PREFIX)-rust + docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-rust .PHONY: languages-run-rust languages-run-rust: @@ -136,12 +139,12 @@ languages-clean-rust: languages-stop-rust # Ruby language targets .PHONY: languages-build-ruby languages-build-ruby: - docker build -t $(IMAGE_PREFIX)-ruby languages/ruby/ + docker build -t $(IMAGE_PREFIX)-ruby $(LANGUAGES_DIR)/ruby/http/ .PHONY: languages-test-ruby languages-test-ruby: @echo "Testing Ruby implementation..." - docker run --rm $(IMAGE_PREFIX)-ruby + docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-ruby .PHONY: languages-run-ruby languages-run-ruby: @@ -159,12 +162,12 @@ languages-clean-ruby: languages-stop-ruby # C language targets .PHONY: languages-build-c languages-build-c: - docker build -t $(IMAGE_PREFIX)-c languages/c/ + docker build -t $(IMAGE_PREFIX)-c $(LANGUAGES_DIR)/c/curl/ .PHONY: languages-test-c languages-test-c: @echo "Testing C implementation..." - docker run --rm $(IMAGE_PREFIX)-c + docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-c .PHONY: languages-run-c languages-run-c: @@ -182,12 +185,12 @@ languages-clean-c: languages-stop-c # C++ language targets .PHONY: languages-build-cpp languages-build-cpp: - docker build -t $(IMAGE_PREFIX)-cpp languages/cpp/ + docker build -t $(IMAGE_PREFIX)-cpp $(LANGUAGES_DIR)/cpp/libcurl/ .PHONY: languages-test-cpp languages-test-cpp: @echo "Testing C++ implementation..." - docker run --rm $(IMAGE_PREFIX)-cpp + docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-cpp .PHONY: languages-run-cpp languages-run-cpp: @@ -205,12 +208,12 @@ languages-clean-cpp: languages-stop-cpp # Bash language targets .PHONY: languages-build-bash languages-build-bash: - docker build -t $(IMAGE_PREFIX)-bash languages/bash/ + docker build -t $(IMAGE_PREFIX)-bash $(LANGUAGES_DIR)/bash/ .PHONY: languages-test-bash languages-test-bash: @echo "Testing Bash implementation..." - docker run --rm $(IMAGE_PREFIX)-bash + docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-bash .PHONY: languages-run-bash languages-run-bash: @@ -225,6 +228,52 @@ languages-stop-bash: languages-clean-bash: languages-stop-bash docker rmi $(IMAGE_PREFIX)-bash || true +# Common Lisp language targets +.PHONY: languages-build-commonlisp +languages-build-commonlisp: + docker build -t $(IMAGE_PREFIX)-commonlisp $(LANGUAGES_DIR)/commonlisp/ + +.PHONY: languages-test-commonlisp +languages-test-commonlisp: + @echo "Testing Common Lisp implementation..." + docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-commonlisp + +.PHONY: languages-run-commonlisp +languages-run-commonlisp: + docker run -it --rm --name test-commonlisp $(IMAGE_PREFIX)-commonlisp + +.PHONY: languages-stop-commonlisp +languages-stop-commonlisp: + docker stop test-commonlisp || true + docker rm test-commonlisp || true + +.PHONY: languages-clean-commonlisp +languages-clean-commonlisp: languages-stop-commonlisp + docker rmi $(IMAGE_PREFIX)-commonlisp || true + +# Scheme language targets +.PHONY: languages-build-scheme +languages-build-scheme: + docker build -t $(IMAGE_PREFIX)-scheme $(LANGUAGES_DIR)/scheme/ + +.PHONY: languages-test-scheme +languages-test-scheme: + @echo "Testing Scheme implementation..." + docker run --rm $(DOCKER_ENV) $(IMAGE_PREFIX)-scheme + +.PHONY: languages-run-scheme +languages-run-scheme: + docker run -it --rm --name test-scheme $(IMAGE_PREFIX)-scheme + +.PHONY: languages-stop-scheme +languages-stop-scheme: + docker stop test-scheme || true + docker rm test-scheme || true + +.PHONY: languages-clean-scheme +languages-clean-scheme: languages-stop-scheme + docker rmi $(IMAGE_PREFIX)-scheme || true + # Build all language implementations .PHONY: languages-build-all languages-build-all: diff --git a/public/languages/commonlisp/uncloseai.lisp b/public/languages/commonlisp/uncloseai.lisp index 1886192..0d4191f 100644 --- a/public/languages/commonlisp/uncloseai.lisp +++ b/public/languages/commonlisp/uncloseai.lisp @@ -18,7 +18,7 @@ :documentation "List of TTS endpoint URLs") (api-key :initform nil :initarg :api-key :accessor api-key :documentation "Optional API key for authentication") - (timeout :initform 30 :initarg :timeout :accessor timeout + (request-timeout :initform 30 :initarg :request-timeout :accessor request-timeout :documentation "Request timeout in seconds"))) (defun make-model-info (id endpoint max-tokens) @@ -73,11 +73,11 @@ client) -(defun make-uncloseai (&key model-endpoints tts-endpoints api-key (timeout 30)) +(defun make-uncloseai (&key model-endpoints tts-endpoints api-key (request-timeout 30)) "Create a new uncloseai client with auto-discovery from environment variables" (let ((client (make-instance 'uncloseai :api-key api-key - :timeout timeout))) + :request-timeout request-timeout))) (initialize-client client model-endpoints tts-endpoints))) ;;; Helper functions