github.com/weaviate/weaviate@v1.24.6/test/docker/reranker.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 docker 13 14 import ( 15 "context" 16 "fmt" 17 "time" 18 19 "github.com/docker/go-connections/nat" 20 "github.com/testcontainers/testcontainers-go" 21 "github.com/testcontainers/testcontainers-go/wait" 22 ) 23 24 const RerankerTransformers = "reranker-transformers" 25 26 func startRerankerTransformers(ctx context.Context, networkName, rerankerTransformersImage string) (*DockerContainer, error) { 27 image := "semitechnologies/reranker-transformers:cross-encoder-ms-marco-MiniLM-L-6-v2" 28 if len(rerankerTransformersImage) > 0 { 29 image = rerankerTransformersImage 30 } 31 port := nat.Port("8080/tcp") 32 container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{ 33 ContainerRequest: testcontainers.ContainerRequest{ 34 Image: image, 35 Hostname: RerankerTransformers, 36 Networks: []string{networkName}, 37 NetworkAliases: map[string][]string{ 38 networkName: {RerankerTransformers}, 39 }, 40 Name: RerankerTransformers, 41 ExposedPorts: []string{"8080/tcp"}, 42 AutoRemove: true, 43 WaitingFor: wait. 44 ForHTTP("/.well-known/ready"). 45 WithPort(port). 46 WithStatusCodeMatcher(func(status int) bool { 47 return status == 204 48 }). 49 WithStartupTimeout(240 * time.Second), 50 }, 51 Started: true, 52 Reuse: true, 53 }) 54 if err != nil { 55 return nil, err 56 } 57 uri, err := container.PortEndpoint(ctx, port, "") 58 if err != nil { 59 return nil, err 60 } 61 envSettings := make(map[string]string) 62 envSettings["RERANKER_INFERENCE_API"] = fmt.Sprintf("http://%s:%s", RerankerTransformers, port.Port()) 63 endpoints := make(map[EndpointName]endpoint) 64 endpoints[HTTP] = endpoint{port, uri} 65 return &DockerContainer{RerankerTransformers, endpoints, container, envSettings}, nil 66 }