public Object invoke()

in instrumentation/openai-client-instrumentation/instrumentation-1.1/src/main/java/co/elastic/otel/openai/v1_1/wrappers/InstrumentedChatCompletionService.java [205:229]


  public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
    String methodName = method.getName();
    Class<?>[] parameterTypes = method.getParameterTypes();

    if (methodName.equals("create")
        && parameterTypes.length >= 1
        && parameterTypes[0] == ChatCompletionCreateParams.class) {
      if (parameterTypes.length == 1) {
        return create((ChatCompletionCreateParams) args[0], RequestOptions.none());
      } else if (parameterTypes.length == 2 && parameterTypes[1] == RequestOptions.class) {
        return create((ChatCompletionCreateParams) args[0], (RequestOptions) args[1]);
      }
    }

    if (methodName.equals("createStreaming")
        && parameterTypes.length >= 1
        && parameterTypes[0] == ChatCompletionCreateParams.class) {
      if (parameterTypes.length == 1) {
        return createStreaming((ChatCompletionCreateParams) args[0], RequestOptions.none());
      } else if (parameterTypes.length == 2 && parameterTypes[1] == RequestOptions.class) {
        return createStreaming((ChatCompletionCreateParams) args[0], (RequestOptions) args[1]);
      }
    }
    return super.invoke(proxy, method, args);
  }