# frozen_string_literal: true

class EmbeddingsGenerationStubs
  class << self
    def discourse_service(model, string, embedding)
      model = "bge-large-en-v1.5" if model == "bge-large-en"
      WebMock
        .stub_request(
          :post,
          "#{SiteSetting.ai_embeddings_discourse_service_api_endpoint}/api/v1/classify",
        )
        .with(body: JSON.dump({ model: model, content: string }))
        .to_return(status: 200, body: JSON.dump(embedding))
    end

    def openai_service(model, string, embedding)
      WebMock
        .stub_request(:post, "https://api.openai.com/v1/embeddings")
        .with(body: JSON.dump({ model: model, input: string }))
        .to_return(status: 200, body: JSON.dump({ data: [{ embedding: embedding }] }))
    end
  end
end
