github.com/weaviate/weaviate@v1.24.6/modules/sum-transformers/client/sum_meta_test.go (about) 1 // _ _ 2 // __ _____ __ ___ ___ __ _| |_ ___ 3 // \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \ 4 // \ V V / __/ (_| |\ V /| | (_| | || __/ 5 // \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___| 6 // 7 // Copyright © 2016 - 2024 Weaviate B.V. All rights reserved. 8 // 9 // CONTACT: hello@weaviate.io 10 // 11 12 package client 13 14 import ( 15 "net/http" 16 "net/http/httptest" 17 "testing" 18 "time" 19 20 "github.com/stretchr/testify/assert" 21 ) 22 23 func TestGetMeta(t *testing.T) { 24 t.Run("when the server is providing meta", func(t *testing.T) { 25 server := httptest.NewServer(&testMetaHandler{t: t}) 26 defer server.Close() 27 c := New(server.URL, 0, nullLogger()) 28 meta, err := c.MetaInfo() 29 30 assert.Nil(t, err) 31 assert.NotNil(t, meta) 32 metaModel := meta["model"] 33 assert.True(t, metaModel != nil) 34 model, modelOK := metaModel.(map[string]interface{}) 35 assert.True(t, modelOK) 36 assert.True(t, model["_name_or_path"] != nil) 37 assert.True(t, model["architectures"] != nil) 38 }) 39 } 40 41 type testMetaHandler struct { 42 t *testing.T 43 // the test handler will report as not ready before the time has passed 44 readyTime time.Time 45 } 46 47 func (f *testMetaHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { 48 assert.Equal(f.t, "/meta", r.URL.String()) 49 assert.Equal(f.t, http.MethodGet, r.Method) 50 51 if time.Since(f.readyTime) < 0 { 52 w.WriteHeader(http.StatusServiceUnavailable) 53 } 54 55 w.Write([]byte(f.metaInfo())) 56 } 57 58 func (f *testMetaHandler) metaInfo() string { 59 return `{ 60 "model": { 61 "_name_or_path": "dbmdz/bert-large-cased-finetuned-conll03-english", 62 "_num_labels": 9, 63 "add_cross_attention": false, 64 "architectures": [ 65 "BertForTokenClassification" 66 ], 67 "attention_probs_dropout_prob": 0.1, 68 "bad_words_ids": null, 69 "bos_token_id": null, 70 "chunk_size_feed_forward": 0, 71 "decoder_start_token_id": null, 72 "directionality": "bidi", 73 "diversity_penalty": 0, 74 "do_sample": false, 75 "early_stopping": false, 76 "encoder_no_repeat_ngram_size": 0, 77 "eos_token_id": null, 78 "finetuning_task": null, 79 "forced_bos_token_id": null, 80 "forced_eos_token_id": null, 81 "gradient_checkpointing": false, 82 "hidden_act": "gelu", 83 "hidden_dropout_prob": 0.1, 84 "hidden_size": 1024, 85 "id2label": { 86 "0": "O", 87 "1": "B-MISC", 88 "2": "I-MISC", 89 "3": "B-PER", 90 "4": "I-PER", 91 "5": "B-ORG", 92 "6": "I-ORG", 93 "7": "B-LOC", 94 "8": "I-LOC" 95 }, 96 "initializer_range": 0.02, 97 "intermediate_size": 4096, 98 "is_decoder": false, 99 "is_encoder_decoder": false, 100 "label2id": { 101 "B-LOC": 7, 102 "B-MISC": 1, 103 "B-ORG": 5, 104 "B-PER": 3, 105 "I-LOC": 8, 106 "I-MISC": 2, 107 "I-ORG": 6, 108 "I-PER": 4, 109 "O": 0 110 }, 111 "layer_norm_eps": 1e-12, 112 "length_penalty": 1, 113 "max_length": 20, 114 "max_position_embeddings": 512, 115 "min_length": 0, 116 "model_type": "bert", 117 "no_repeat_ngram_size": 0, 118 "num_attention_heads": 16, 119 "num_beam_groups": 1, 120 "num_beams": 1, 121 "num_hidden_layers": 24, 122 "num_return_sequences": 1, 123 "output_attentions": false, 124 "output_hidden_states": false, 125 "output_scores": false, 126 "pad_token_id": 0, 127 "pooler_fc_size": 768, 128 "pooler_num_attention_heads": 12, 129 "pooler_num_fc_layers": 3, 130 "pooler_size_per_head": 128, 131 "pooler_type": "first_token_transform", 132 "position_embedding_type": "absolute", 133 "prefix": null, 134 "problem_type": null, 135 "pruned_heads": {}, 136 "remove_invalid_values": false, 137 "repetition_penalty": 1, 138 "return_dict": true, 139 "return_dict_in_generate": false, 140 "sep_token_id": null, 141 "task_specific_params": null, 142 "temperature": 1, 143 "tie_encoder_decoder": false, 144 "tie_word_embeddings": true, 145 "tokenizer_class": null, 146 "top_k": 50, 147 "top_p": 1, 148 "torchscript": false, 149 "transformers_version": "4.6.1", 150 "type_vocab_size": 2, 151 "use_bfloat16": false, 152 "use_cache": true, 153 "vocab_size": 28996 154 } 155 }` 156 }