diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5b8385c8..5a0f502e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -29,6 +29,7 @@ jobs: sudo apt-get install -y ca-certificates cmake curl patch sudo apt-get install -y libopencv-dev && sudo ln -s /usr/include/opencv4/opencv2 /usr/include/opencv2 + sudo pip install -r extra/requirements.txt sudo mkdir /build && sudo chmod -R 777 /build && cd /build && \ curl -L "https://github.com/gabime/spdlog/archive/refs/tags/v1.11.0.tar.gz" | \ @@ -45,7 +46,6 @@ jobs: sudo cp -rfv /build/lib/Linux-$(uname -m)/piper_phonemize/lib/. /lib64/ && \ sudo cp -rfv /build/lib/Linux-$(uname -m)/piper_phonemize/lib/. /usr/lib/ && \ sudo cp -rfv /build/lib/Linux-$(uname -m)/piper_phonemize/include/. /usr/include/ - - name: Test run: | ESPEAK_DATA="/build/lib/Linux-$(uname -m)/piper_phonemize/lib/espeak-ng-data" GO_TAGS="tts stablediffusion" make test diff --git a/.gitignore b/.gitignore index 7b35ba9f..a1c1c06a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,9 +3,10 @@ go-llama /gpt4all go-stable-diffusion go-piper +/go-bert go-ggllm /piper - +__pycache__/ *.a get-sources diff --git a/api/api_test.go b/api/api_test.go index 1e53fa70..2ffcb71e 100644 --- a/api/api_test.go +++ b/api/api_test.go @@ -124,8 +124,11 @@ var _ = Describe("API test", func() { var c context.Context var cancel context.CancelFunc var tmpdir string - commonOpts := []options.AppOption{options.WithDebug(false), - options.WithDisableMessage(true)} + + commonOpts := []options.AppOption{ + options.WithDebug(true), + options.WithDisableMessage(true), + } Context("API with ephemeral models", func() { BeforeEach(func() { @@ -145,7 +148,7 @@ var _ = Describe("API test", func() { Name: "bert2", URL: "https://raw.githubusercontent.com/go-skynet/model-gallery/main/bert-embeddings.yaml", Overrides: map[string]interface{}{"foo": "bar"}, - AdditionalFiles: []gallery.File{gallery.File{Filename: "foo.yaml", URI: "https://raw.githubusercontent.com/go-skynet/model-gallery/main/bert-embeddings.yaml"}}, + AdditionalFiles: []gallery.File{{Filename: "foo.yaml", URI: "https://raw.githubusercontent.com/go-skynet/model-gallery/main/bert-embeddings.yaml"}}, }, } out, err := yaml.Marshal(g) @@ -421,64 +424,32 @@ var _ = Describe("API test", func() { os.RemoveAll(tmpdir) }) - Context("API query", func() { - BeforeEach(func() { - modelLoader = model.NewModelLoader(os.Getenv("MODELS_PATH")) - c, cancel = context.WithCancel(context.Background()) + It("calculate embeddings with huggingface", func() { + if runtime.GOOS != "linux" { + Skip("test supported only on linux") + } + resp, err := client.CreateEmbeddings( + context.Background(), + openai.EmbeddingRequest{ + Model: openai.AdaCodeSearchCode, + Input: []string{"sun", "cat"}, + }, + ) + Expect(err).ToNot(HaveOccurred()) + Expect(len(resp.Data[0].Embedding)).To(BeNumerically("==", 384)) + Expect(len(resp.Data[1].Embedding)).To(BeNumerically("==", 384)) - var err error - app, err = App( - append(commonOpts, - options.WithDebug(true), - options.WithContext(c), options.WithModelLoader(modelLoader))...) - Expect(err).ToNot(HaveOccurred()) - go app.Listen("127.0.0.1:9090") - - defaultConfig := openai.DefaultConfig("") - defaultConfig.BaseURL = "http://127.0.0.1:9090/v1" - - client2 = openaigo.NewClient("") - client2.BaseURL = defaultConfig.BaseURL - - // Wait for API to be ready - client = openai.NewClientWithConfig(defaultConfig) - Eventually(func() error { - _, err := client.ListModels(context.TODO()) - return err - }, "2m").ShouldNot(HaveOccurred()) - }) - AfterEach(func() { - cancel() - app.Shutdown() - }) - - It("calculate embeddings with huggingface", func() { - if runtime.GOOS != "linux" { - Skip("test supported only on linux") - } - resp, err := client.CreateEmbeddings( - context.Background(), - openai.EmbeddingRequest{ - Model: openai.AdaCodeSearchCode, - Input: []string{"sun", "cat"}, - }, - ) - Expect(err).ToNot(HaveOccurred()) - Expect(len(resp.Data[0].Embedding)).To(BeNumerically("==", 384)) - Expect(len(resp.Data[1].Embedding)).To(BeNumerically("==", 384)) - - sunEmbedding := resp.Data[0].Embedding - resp2, err := client.CreateEmbeddings( - context.Background(), - openai.EmbeddingRequest{ - Model: openai.AdaCodeSearchCode, - Input: []string{"sun"}, - }, - ) - Expect(err).ToNot(HaveOccurred()) - Expect(resp2.Data[0].Embedding).To(Equal(sunEmbedding)) - Expect(resp2.Data[0].Embedding).ToNot(Equal(resp.Data[1].Embedding)) - }) + sunEmbedding := resp.Data[0].Embedding + resp2, err := client.CreateEmbeddings( + context.Background(), + openai.EmbeddingRequest{ + Model: openai.AdaCodeSearchCode, + Input: []string{"sun"}, + }, + ) + Expect(err).ToNot(HaveOccurred()) + Expect(resp2.Data[0].Embedding).To(Equal(sunEmbedding)) + Expect(resp2.Data[0].Embedding).ToNot(Equal(resp.Data[1].Embedding)) }) })