@@ -326,3 +326,104 @@ jobs:
326326 run : |
327327 pkill -f qdrant
328328
329+ test-api-server-macos-15 :
330+ runs-on : macos-15
331+ needs : test-api-server-macos-14
332+ strategy :
333+ matrix :
334+ wasmedge_version : [0.14.1]
335+ steps :
336+ - name : Clone project
337+ id : checkout
338+ uses : actions/checkout@v3
339+
340+ - name : Install Rust-nightly
341+ uses : actions-rust-lang/setup-rust-toolchain@v1
342+ with :
343+ toolchain : nightly
344+ target : wasm32-wasip1
345+ components : rustfmt, clippy
346+
347+ - name : Install Rust-stable
348+ uses : actions-rust-lang/setup-rust-toolchain@v1
349+ with :
350+ target : wasm32-wasip1
351+
352+ - name : Download wasi-sdk for arm64-macos
353+ run : |
354+ curl -LO https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-24/wasi-sdk-24.0-arm64-macos.tar.gz
355+ tar -xzvf wasi-sdk-24.0-arm64-macos.tar.gz
356+ mv wasi-sdk-24.0-arm64-macos wasi-sdk-24.0
357+
358+ - name : Install WasmEdge
359+ run : |
360+ curl -sSf https://raw.githubusercontent.com/WasmEdge/WasmEdge/master/utils/install_v2.sh | bash -s -- -v ${{ matrix.wasmedge_version }}
361+ ls -al $HOME/.wasmedge/bin
362+
363+ - name : Install Hurl
364+ run : |
365+ brew install hurl
366+
367+ - name : Install Qdrant and download snapshot
368+ run : |
369+ # Download Qdrant
370+ curl -LO https://github.com/qdrant/qdrant/releases/download/v1.11.4/qdrant-aarch64-apple-darwin.tar.gz
371+ tar -xzvf qdrant-aarch64-apple-darwin.tar.gz
372+ rm qdrant-aarch64-apple-darwin.tar.gz
373+
374+ # Download snapshot
375+ curl -LO https://huggingface.co/datasets/gaianet/paris/resolve/main/paris_768_nomic-embed-text-v1.5-f16.snapshot
376+ mv paris_768_nomic-embed-text-v1.5-f16.snapshot default.snapshot
377+
378+ ls -al
379+
380+ - name : Build rag-api-server on macos-14
381+ env :
382+ WASI_SDK_PATH : /Users/runner/work/rag-api-server/rag-api-server/wasi-sdk-24.0
383+ CC : " /Users/runner/work/rag-api-server/rag-api-server/wasi-sdk-24.0/bin/clang --sysroot=/Users/runner/work/rag-api-server/rag-api-server/wasi-sdk-24.0/share/wasi-sysroot"
384+ RUSTFLAGS : " --cfg wasmedge --cfg tokio_unstable"
385+ run : |
386+ cargo build -p rag-api-server --release
387+ cp target/wasm32-wasip1/release/rag-api-server.wasm ./rag-api-server.wasm
388+
389+ - name : Download models
390+ run : |
391+ curl -LO https://huggingface.co/second-state/Qwen2-1.5B-Instruct-GGUF/resolve/main/Qwen2-1.5B-Instruct-Q3_K_M.gguf
392+ curl -LO https://huggingface.co/second-state/Nomic-embed-text-v1.5-Embedding-GGUF/resolve/main/nomic-embed-text-v1.5-f16.gguf
393+
394+ - name : Start Qdrant
395+ run : |
396+ nohup ./qdrant > ./start-qdrant.log 2>&1 &
397+ sleep 5
398+ cat start-qdrant.log
399+
400+ - name : Import the default.snapshot file to Qdrant
401+ run : |
402+ curl -s -X POST http://localhost:6333/collections/default/snapshots/upload?priority=snapshot -H 'Content-Type:multipart/form-data' -F '[email protected] ' 403+
404+ - name : Start rag-api-server for testing chat completions
405+ run : |
406+ nohup $HOME/.wasmedge/bin/wasmedge --dir .:. --nn-preload default:GGML:AUTO:Qwen2-1.5B-Instruct-Q3_K_M.gguf --nn-preload embedding:GGML:AUTO:nomic-embed-text-v1.5-f16.gguf rag-api-server.wasm --model-name Qwen2-1.5B-Instruct,nomic-embed-text-v1.5 --ctx-size 4096,512 --batch-size 16,512 --prompt-template chatml,embedding --rag-policy last-user-message --socket-addr 0.0.0.0:9069 > ./start-llamaedge.log 2>&1 &
407+ sleep 30
408+ cat start-llamaedge.log
409+
410+ - name : Run test_chat.hurl
411+ run : |
412+ hurl --test --jobs 1 ./tests/test_chat.hurl
413+
414+ - name : Run test_embeddings.hurl
415+ run : |
416+ hurl --test --jobs 1 ./tests/test_embeddings.hurl
417+
418+ - name : Run test_rag.hurl
419+ run : |
420+ hurl --test --jobs 1 ./tests/test_rag.hurl
421+
422+ - name : Stop rag-api-server for testing chat completions
423+ run : |
424+ pkill -f wasmedge
425+
426+ - name : Stop Qdrant
427+ run : |
428+ pkill -f qdrant
429+
0 commit comments