fix Docker builds: go-http missing files, go-openai go.sum, csharp-openai SDK API, D language JSONValue syntax
This commit is contained in:
parent
381bd5f739
commit
6318db3d1f
65 changed files with 2934 additions and 2306 deletions
103
Makefile
103
Makefile
|
|
@ -1,7 +1,29 @@
|
|||
# Makefile for ai.unturf.com project
|
||||
# All commands used for testing, validation, and development
|
||||
|
||||
.PHONY: help format check test validate-exports validate-all clean install dev build deploy languages-list languages-build-% languages-test-% languages-clean
|
||||
# All phony targets
|
||||
.PHONY: help format check test validate-exports validate-all clean install dev build deploy
|
||||
.PHONY: languages-list languages-build-% languages-test-% languages-build-all languages-test-all languages-clean
|
||||
.PHONY: languages-build-c-curl languages-build-c-libsoup languages-build-c-nghttp2
|
||||
.PHONY: languages-build-cpp-boost-beast languages-build-cpp-cpp-httplib languages-build-cpp-libcurl
|
||||
.PHONY: languages-build-csharp-http languages-build-csharp-openai
|
||||
.PHONY: languages-build-elixir-httpoison languages-build-elixir-openai
|
||||
.PHONY: languages-build-go-http languages-build-go-openai
|
||||
.PHONY: languages-build-groovy-openai-client
|
||||
.PHONY: languages-build-java-http languages-build-java-openai
|
||||
.PHONY: languages-build-javascript-bun languages-build-javascript-nodejs languages-build-javascript-openai-nodejs languages-build-javascript-typescript languages-build-javascript-vanilla
|
||||
.PHONY: languages-build-python-aiohttp languages-build-python-httpx-async languages-build-python-openai languages-build-python-requests
|
||||
.PHONY: languages-build-ruby-http languages-build-ruby-openai
|
||||
.PHONY: languages-test-c-curl languages-test-c-libsoup languages-test-c-nghttp2
|
||||
.PHONY: languages-test-cpp-boost-beast languages-test-cpp-cpp-httplib languages-test-cpp-libcurl
|
||||
.PHONY: languages-test-csharp-http languages-test-csharp-openai
|
||||
.PHONY: languages-test-elixir-httpoison languages-test-elixir-openai
|
||||
.PHONY: languages-test-go-http languages-test-go-openai
|
||||
.PHONY: languages-test-groovy-openai-client
|
||||
.PHONY: languages-test-java-http languages-test-java-openai
|
||||
.PHONY: languages-test-javascript-bun languages-test-javascript-nodejs languages-test-javascript-openai-nodejs languages-test-javascript-typescript languages-test-javascript-vanilla
|
||||
.PHONY: languages-test-python-aiohttp languages-test-python-httpx-async languages-test-python-openai languages-test-python-requests
|
||||
.PHONY: languages-test-ruby-http languages-test-ruby-openai
|
||||
|
||||
# Environment variables for testing language implementations
|
||||
MODEL_ENDPOINT_1 ?= https://hermes.ai.unturf.com/v1
|
||||
|
|
@ -34,8 +56,10 @@ help:
|
|||
@echo ""
|
||||
@echo "Language Examples:"
|
||||
@echo " make languages-list - List all language directories"
|
||||
@echo " make languages-build-<lang> - Build Docker image for language"
|
||||
@echo " make languages-build-<lang> - Build Docker image for language (use - for /: python-openai)"
|
||||
@echo " make languages-build-all - Build all language Docker images"
|
||||
@echo " make languages-test-<lang> - Test language implementation with endpoints"
|
||||
@echo " make languages-test-all - Test all language implementations"
|
||||
@echo " make languages-clean - Stop and remove language test containers"
|
||||
|
||||
# Code formatting and linting
|
||||
|
|
@ -177,14 +201,20 @@ ci: clean format-check validate-all validate-structure validate-translations che
|
|||
# Language Examples Commands
|
||||
languages-list:
|
||||
@echo "Available language implementations:"
|
||||
@ls -d languages/*/ 2>/dev/null | sed 's|languages/||g' | sed 's|/||g' || echo "No language directories found"
|
||||
@find languages -name "Dockerfile" -type f | sed 's|/Dockerfile||g' | sed 's|languages/||g' | sort || echo "No language implementations found"
|
||||
|
||||
languages-build-%:
|
||||
@echo "Building Docker image for $*..."
|
||||
@if [ -d "languages/$*" ]; then \
|
||||
@target_path=$$(echo "$*" | tr '-' '/'); \
|
||||
if [ -f "languages/$$target_path/Dockerfile" ]; then \
|
||||
echo "Found Dockerfile at languages/$$target_path/"; \
|
||||
docker build -t ai-unturf-$* languages/$$target_path/; \
|
||||
elif [ -f "languages/$*/Dockerfile" ]; then \
|
||||
echo "Found Dockerfile at languages/$*/"; \
|
||||
docker build -t ai-unturf-$* languages/$*/; \
|
||||
else \
|
||||
echo "❌ Language directory languages/$* not found"; \
|
||||
echo "❌ No Dockerfile found for $*"; \
|
||||
echo "Tried: languages/$$target_path/ and languages/$*/"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
|
|
@ -193,7 +223,8 @@ languages-test-%:
|
|||
@echo "Environment: MODEL_ENDPOINT_1=$(MODEL_ENDPOINT_1)"
|
||||
@echo "Environment: MODEL_ENDPOINT_2=$(MODEL_ENDPOINT_2)"
|
||||
@echo "Environment: TTS_ENDPOINT_1=$(TTS_ENDPOINT_1)"
|
||||
@if [ -d "languages/$*" ]; then \
|
||||
@target_path=$$(echo "$*" | tr '-' '/'); \
|
||||
if [ -f "languages/$$target_path/Dockerfile" ] || [ -f "languages/$*/Dockerfile" ]; then \
|
||||
echo "Starting container..."; \
|
||||
docker run -d --name test-$* $(DOCKER_ENV_VARS) ai-unturf-$* && \
|
||||
sleep 3 && \
|
||||
|
|
@ -203,10 +234,68 @@ languages-test-%:
|
|||
echo "✅ Container started - check logs above for model discovery" && \
|
||||
echo "To stop: docker stop test-$* && docker rm test-$*"; \
|
||||
else \
|
||||
echo "❌ Language directory languages/$* not found"; \
|
||||
echo "❌ No Docker image found for $*"; \
|
||||
echo "Build it first: make languages-build-$*"; \
|
||||
exit 1; \
|
||||
fi
|
||||
|
||||
languages-build-all:
|
||||
@echo "Building all language implementations..."
|
||||
@failed=0; \
|
||||
total=0; \
|
||||
for dockerfile in $$(find languages -name "Dockerfile" -type f | sort); do \
|
||||
dir=$$(dirname $$dockerfile); \
|
||||
name=$$(echo $$dir | sed 's|languages/||g' | tr '/' '-'); \
|
||||
total=$$((total + 1)); \
|
||||
echo ""; \
|
||||
echo "========================================"; \
|
||||
echo "[$$total] Building $$name ($$dir)"; \
|
||||
echo "========================================"; \
|
||||
if docker build -t ai-unturf-$$name $$dir/ 2>&1 | tail -20; then \
|
||||
echo "✅ $$name built successfully"; \
|
||||
else \
|
||||
echo "❌ $$name build failed"; \
|
||||
failed=$$((failed + 1)); \
|
||||
fi; \
|
||||
done; \
|
||||
echo ""; \
|
||||
echo "========================================"; \
|
||||
echo "Build Summary: $$((total - failed))/$$total successful"; \
|
||||
if [ $$failed -gt 0 ]; then \
|
||||
echo "❌ $$failed build(s) failed"; \
|
||||
exit 1; \
|
||||
else \
|
||||
echo "✅ All builds successful!"; \
|
||||
fi
|
||||
|
||||
languages-test-all:
|
||||
@echo "Testing all language implementations..."
|
||||
@failed=0; \
|
||||
total=0; \
|
||||
for dockerfile in $$(find languages -name "Dockerfile" -type f | sort); do \
|
||||
dir=$$(dirname $$dockerfile); \
|
||||
name=$$(echo $$dir | sed 's|languages/||g' | tr '/' '-'); \
|
||||
total=$$((total + 1)); \
|
||||
echo ""; \
|
||||
echo "========================================"; \
|
||||
echo "[$$total] Testing $$name"; \
|
||||
echo "========================================"; \
|
||||
if docker run --rm $(DOCKER_ENV_VARS) ai-unturf-$$name 2>&1 | head -15; then \
|
||||
echo "✅ $$name ran successfully"; \
|
||||
else \
|
||||
echo "❌ $$name test failed"; \
|
||||
failed=$$((failed + 1)); \
|
||||
fi; \
|
||||
done; \
|
||||
echo ""; \
|
||||
echo "========================================"; \
|
||||
echo "Test Summary: $$((total - failed))/$$total successful"; \
|
||||
if [ $$failed -gt 0 ]; then \
|
||||
echo "❌ $$failed test(s) failed"; \
|
||||
else \
|
||||
echo "✅ All tests successful!"; \
|
||||
fi
|
||||
|
||||
languages-clean:
|
||||
@echo "Stopping and removing language test containers..."
|
||||
@docker ps -a | grep test- | awk '{print $$1}' | xargs -r docker stop 2>/dev/null || true
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue